JPA中的两个实体可以在它们之间有多个关系吗?

时间:2012-01-18 01:55:30

标签: java java-ee jpa orm openjpa

让我定义以下实体,例如:

@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 :(得分:0)

我怀疑Hibernate可以区分@ManyToManyApple的两个Apple关联,因为您使用的是默认连接列,对于这两个关联,它们都是相同的。我想您可以自定义Orange与{{1}}的关联,以便将它们映射到数据库中的不同列(不同的FK)。