2015-10-31 2 views
1

У меня есть кланы, которые выглядят примерно так. Я хочу связать пользователя с местностью. Там, где есть связь OneToMany между City-Locality. Как достичь этогоКак достичь соотношения между сложными ключами Hibernate?

public class User { 

    private Long userId;  
    private String email; 
    private String password; 
    private String firstName; 
    private String lastName; 
    private String phone; 
} 

@Entity 
public class City { 

    @Id 
    private Long id; 
    private String cityName; 
    private String pinCode; 
} 

@Entity 
public class Locality { 
    private Long Id; 
    private String localityName; 
} 

ответ

0

У вашей модели недостаточно ясности - в объекте пользователя нет информации об этом городе или местности. Однако, если вы добавите локальное поле идентификатора пользователя в объект пользователя, решение будет выглядеть следующим образом:

@Entity 
public class User { 
    @Id 
    private Long userId; 

    private String email; 
    private String password; 
    private String firstName; 
    private String lastName; 
    private String phone; 

    @OneToOne 
    @JoinColumn(name="LOCALITY_ID") 
    private Locality locality; 

    //setters/getters omitted 
} 


@Entity 
public class City { 

    @Id 
    private Long id; 
    private String cityName; 
    private String pinCode; 

    @OneToMany 
    @JoinColumn(name="LOCALITY_ID") // join column is in table for LOCALITY 
    private Set<Locality> localities; 

    //setters/getters omitted 
}