Видел много примеров, но все еще не совсем понимаю, в каких случаях пишется эта аннотация. Вот допустим у нас сущности User и Book, между ними отношения OneToMany в User и ManyToOne в Books соответственно. Так вот, я прочитал, что @JoinColumn использует та сущность, которая в этих отношениях является "главной", а та сущность, которая не несет ответственности, помечается как mappedBy.
Допустим у нас есть два класс-сущности:
@Entity
@Table (name="users")
public class Person
{
private String name;
@OneToOne (optional=false, cascade=CascadeType.ALL)
@JoinColumn (name="passport_id")
private Passport passport;
}
@Entity
@Table (name="passports")
public class Passport
{
private String series;
private String number;
@OneToOne (optional=false, mappedBy="passport")
private Person owner;
}
Этот пример я увидел в одной статье. Какой из этих классов является главным, по отношению к другому? И что вообще значит главный?
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости