Количество элементов Spring Roo сопоставлено по атрибуту

Я пытаюсь сопоставить объект Address и объект Person, используя сопоставление OneToMany: «У каждого человека есть только один адрес, но у адреса может быть много людей».

@RooJavaBean
@RooToString
@RooEntity(identifierColumn = "addressID")
public class Address {

    @OneToMany(cascade = CascadeType.ALL, **mappedBy = "address**")
    private Set<Person> persons = new HashSet<Person>();
}

Я не могу понять, с чем сопоставить объект Address (жирным шрифтом), у меня очень мало опыта работы с JPA (Eclipse Link) и Spring roo, но я подумал, что mappedBy should equal addressID и двунаправленный ManyToOne в моем объекте Person mappedBy должны равняться personID?


person Warz    schedule 02.01.2012    source источник


Ответы (1)


Как вам подскажут любые документы JPA (их предоставляют все реализации JPA), mappedBy — это имя поля типа «Адрес» в классе Person. Если у вас нет поля этого типа в Person, то отношение не является двунаправленным, и поэтому вы не используете «mappedBy».

person DataNucleus    schedule 02.01.2012
comment
Спасибо за объяснение, как тогда сопоставляются две сущности? сопоставляются ли они по своим уникальным идентификаторам - person Warz; 04.01.2012
comment
Возможно, прочитайте документ об отношении 1-N JPA, см. datanucleus.org /products/accessplatform_3_0/jpa/orm/ и выберите однонаправленный или двунаправленный, а также если используется FK или таблица соединения. - person DataNucleus; 04.01.2012