我有一个简单的JPA项目正在运行(在WebSphere 7上使用IBM RAD 7.5)。
我有一个客户有很多订单。看起来像这样。。。
@Entity
public class Customer /* in table CC_CUSTOMER */
@Id
BigDecimal customerId;
@OneToMany(fetch=FetchType.EAGER)
private List<Order> orderList;
@Entity
public class Order /* in table CC_ORDER */
@Id
BigDecimal orderId;
Customer customer;
我遇到的问题是,当我试图检索Customer时,我会遇到一个错误,因为JPA生成的SQL包含一个不存在的表的选择,该表名为:CC_Customer_CC_ORDER
我做错了什么?
谢谢!
Rob
Customer缺少@ManyToOne注释;并在@OneToMany注释上mappedBy="customer"
客户实体
@OneToMany(fetch=FetchType.EAGER, mappedBy="customer")
private List<Order> orderList;
订单实体
@ManyToOne
Customer customer;
正因为如此,JPA认为您的关系是单向的,这可以通过名为CC_CUSTOMER_CC_ORDER的联接表来解决。如果您让您的提供者生成模式,则应该生成表。