Могут ли два объекта в 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) в БД.

Другие вопросы по тегам