0

我是 Java EE(和 Netbeans)的新手。我试图从我的 mysql 数据库中自动生成实体类......对于简单的关系它可以工作,但对于以下它总是失败:

在此处输入图像描述

我收到以下错误:

内部异常:异常 [EclipseLink-7220](Eclipse Persistence Services - 2.3.2.v20111125-r10461):org.eclipse.persistence.exceptions.ValidationException 异常描述:来自实体类的注释元素 [field tblExpandituresTranx] 上的 @JoinColumns [class entity.restaurant.TblContents] 不完整。当源实体类使用复合主键时,必须使用@JoinColumns 为每个连接列指定@JoinColumn。name 和 referencedColumnName 元素都必须在每个这样的 @JoinColumn. 中指定。有关更多详细信息,请参阅 server.log。

我想......我的数据库中有一些错误,或者 EclipseLink JPA 工具可能是错误的!请帮忙!

4

2 回答 2

1

可能是您的架构颠倒了。

或者你实际上可以阅读你得到的异常并弄清楚它告诉你什么:

The @JoinColumns on the annotated element [field tblExpandituresTranx] from the entity class [class entities.restaurant.TblContents] is incomplete. When the source entity class uses a composite primary key, a @JoinColumn must be specified for each join column using the @JoinColumns. Both the name and the referencedColumnName elements must be specified in each such @JoinColumn

看起来您的 JOIN 规范不完整。

于 2013-01-01T22:57:52.967 回答
1

我自己解决了这个问题......显然JPA在桥表中存在多个主键的问题。因此,我没有将外键作为主键,而是将它们转换为唯一索引,并且一切正常!呜呜!!

于 2013-01-18T02:05:16.520 回答