JPA @Onetomany和@manytoone获取部分复合主键

时间:2013-02-21 16:47:17

标签: hibernate jpa

我有两个Order和Items实体。在Order实体中,id是OrderId,UserId的复合主键,但在Items中,外键只是Order Id。

如何使用订单ID

获取商品列表
public class Order {
   @EmbeddedId
   private CompositePrimaryKey pk;

   @OneToMany
   @JoinColumn(name="ORDER_ID")
   private List<Items> itemsLst;
}

public Class Items {
   @Id
   @Column(name="ORDER_ID")
   private Integer orderId;
}

以上代码无效。我知道表设计并不好,但现在很难改变表的设计,这种改变会影响很多地方。因此,保持当前的设计可以做任何事情。

我尝试使用mappedBy并且如上所述在任何一种情况下我都会收到错误。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

如果Order和Item之间有OneToMany,则ORDER_ID不能是Item的主键,因为它不是唯一的。 也许还有其他问题,但这是一个明显的问题,我可以在没有看到错误的情况下发现。