Могут ли два объекта в JPA иметь более одного отношения между ними? - PullRequest
1 голос
/ 18 января 2012

позвольте мне, например, определить следующие объекты:

@Entity
public class Box{

    @ManyToOne
    Apple apple;

    @ManyToOne
    Orange orange;

}

@Entity
public class Apple {

    @OneToMany
    List<Box> boxes;

    @ManyToMany
    List<Orange> OrangeBoxMates;
}


@Entity
public class Orange {

    @OneToMany
    List<Box> boxes;

    @ManyToMany
    List<Apple> appleBoxMates;

}

Игнорировать тот факт, что многие аннотации были опущены.Я просто использую этот код в качестве примера.

Теперь я хочу создать дополнительную однонаправленную связь между яблоками и апельсинами.

@Entity
public class Apple {

    @OneToMany
    List<Box> boxes;

    @ManyToMany
    List<Orange> OrangeBoxMates;

    @ManyToMany
    List<Orange> OrangeFriends;
}


@Entity
public class Orange {

    @OneToMany
    List<Box> boxes;

    @ManyToMany
    List<Apple> appleBoxMates;


}

Есть ли причина, по которой я не могу сделать что-то подобное?

1 Ответ

0 голосов
/ 18 января 2012

Я сомневаюсь, что Hibernate может отличить две @ManyToMany ассоциации в Apple, так как вы используете столбцы соединения по умолчанию, и они будут одинаковыми для обеих ассоциаций.Я полагаю, вы можете настроить ваши Apple ассоциации на Orange, чтобы они отображались в разные столбцы (разные FK) в БД.

...