ответ

0

Использование @OneToOne аннотации с @JoinColumn аннотацию, чтобы определить первичный ключ другого объекта:

@OneToOne(fetch=FetchType.LAZY) 
@JoinColumn(name="personId") 
private PersonData data; 
0

Вы можете использовать @PrimaryKeyJoinColumn, что общий первичный ключ в таблице PersonData.

@Entity 
public class Person implements Serializable { 

    @Id 
    @GeneratedValue(strategy= GenerationType.AUTO) 
    private Long id; 

    @OneToOne(cascade = CascadeType.PERSIST, mappedBy = "personId") 
    @PrimaryKeyJoinColumn 
    private PersonData data; 

} 

@Entity 
public class PersonData implements Serializable { 

    @Id 
    @OneToOne(targetEntity = Person.class) 
    private Long personId; 
} 

Для получения более подробной информации:

https://github.com/abhilekhsingh041992/spring-boot-samples/blob/master/jpa/src/main/java/example/springboot/jpa/domain/Person.java

https://github.com/abhilekhsingh041992/spring-boot-samples/blob/master/jpa/src/main/java/example/springboot/jpa/domain/PersonData.java

+0

Это двунаправленным. Не хотите, чтобы PersonData знал о Человеке. Он должен ссылаться только на id (personId). – aandeers

+0

Я этого не знал. Я отредактировал ответ. Пожалуйста, проверьте и сообщите мне, если это сработает. –

+0

Спасибо за ваш ответ, но не получили его на работу – aandeers

Смежные вопросы