Могут ли два объекта в JPA иметь более одного отношения между ними?
Позвольте мне определить следующие объекты, например:
@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 ответ
Я сомневаюсь, что Hibernate может сказать разницу между двумя @ManyToMany
ассоциации в Apple
поскольку вы используете столбцы соединения по умолчанию, и они будут одинаковыми для обеих ассоциаций. Я полагаю, вы можете настроить свой Apple
ассоциации с Orange
так что они отображаются в разные столбцы (разные FK) в БД.