我的数据库中有两个 3 表:
团体 ---------- groupId PK 姓名
用户帐号 ---------- 用户 ID PK
用户分组 ---------- groupId PK FK 分组(groupId -> groupId) userId PK FK user_account(userId -> userId)
在我的 UserAccount 实体中,我有以下行:
@JoinTable(name = "user_group", joinColumns = {
@JoinColumn(name = "userId", referencedColumnName = "userId")}, inverseJoinColumns = {
@JoinColumn(name = "groupId", referencedColumnName = "groupId")})
@ManyToMany
private List<Grouping> groupingList;
这是为了显示所有表之间的关系。但是,当我部署时,我收到以下错误:
严重:准备应用程序时出现异常:异常 [EclipseLink-28018] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.EntityManagerSetupException 异常描述:PersistenceUnit [com.dv_model_ejb_1.0-SNAPSHOTPU] 的预部署失败。 内部异常:异常 [EclipseLink-7220] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.ValidationException 异常说明:实体类 [class com.dv.model.entity.UserAccount] 中带注释的元素 [field groupingList] 上的 @JoinColumns 不完整。当源实体类使用复合主键时,必须使用@JoinColumns 为每个连接列指定@JoinColumn。name 和 referencedColumnName 元素都必须在每个这样的 @JoinColumn 中指定。 本地异常堆栈: 异常 [EclipseLink-28018] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.EntityManagerSetupException 异常描述:PersistenceUnit [com.dv_model_ejb_1.0-SNAPSHOTPU] 的预部署失败。 内部异常:异常 [EclipseLink-7220] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.ValidationException 异常说明:实体类 [class com.dv.model.entity.UserAccount] 中带注释的元素 [field groupingList] 上的 @JoinColumns 不完整。当源实体类使用复合主键时,必须使用@JoinColumns 为每个连接列指定@JoinColumn。name 和 referencedColumnName 元素都必须在每个这样的 @JoinColumn 中指定。 在 org.eclipse.persistence.exceptions.EntityManagerSetupException.predeployFailed(EntityManagerSetupException.java:221) 在 org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:1402) ...
我不确定如何解释此错误消息。我假设我没有在我的实体中正确建模表关系。但我不确定为什么。在今天之前,这编译得很好。任何人都可以提供帮助吗?