Hibernate @MapsId不';无法使用shared@EmbeddedId

Hibernate @MapsId不';无法使用shared@EmbeddedId,hibernate,java-8,jpa-2.0,java-ee-7,payara,Hibernate,Java 8,Jpa 2.0,Java Ee 7,Payara,我这里有以下场景: 一个活动包含许多用户。每个用户都由活动id、用户id及其分支机构标识。映射如下: @实体 公课运动{ @身份证 私有整数id; @OneToMany(mappedBy=“活动”,cascade=ALL) 私有集usersByCampaign; } UserByCampaign类的定义如下: @实体 公共类UserByCampaign{ @嵌入ID 私有userbypkid; @MapsId(“用户ID”) @许多酮 @JoinColumn(name=“FK_USER”,re

我这里有以下场景:

一个活动包含许多用户。每个用户都由活动id、用户id及其分支机构标识。映射如下:

@实体
公课运动{
@身份证
私有整数id;
@OneToMany(mappedBy=“活动”,cascade=ALL)
私有集usersByCampaign;
}
UserByCampaign
类的定义如下:

@实体
公共类UserByCampaign{
@嵌入ID
私有userbypkid;
@MapsId(“用户ID”)
@许多酮
@JoinColumn(name=“FK_USER”,referencedColumnName=“ID”)
私人用户;
@MapsId(“活动ID”)
@许多酮
@JoinColumn(name=“FK_活动”,referencedColumnName=“ID”)
私人竞选活动;
私人字符串分支;
@可嵌入
公共静态类UserByCampaignPk实现可序列化{
私有整数用户标识;
私有整数ID;
}
}
以及
用户
类:

@实体
公共类用户{
@身份证
私有整数id;
@OneToMany(mappedBy=“用户”)
私有集usersByCampaign;
}
当然,我已经抑制了代码的其余部分,使其简短。 每次我试图用一堆用户持久化一个活动对象时,它都会抛出一个异常,试图插入一个新用户。不用说,异常堆栈表示违反了用户表唯一约束

INFO:   Hibernate: select SEQ_CAMPAIGN.nextval from dual
INFO:   Hibernate: insert into CAMPAIGN (...)
INFO:   Hibernate: insert into USER (STATUS, ID) values (?, ?)
WARN:   SQL Error: 1, SQLState: 23000
ERROR:   ORA-00001: unique constraint (SYS_C0083506) violated

INFO:   HHH000010: On release of batch it still contained JDBC statements
WARNING:   DTX5014: Caught exception in beforeCompletion() callback:
删除
@MapsId
注释,并将
@ManyToOne
映射设置为
insertable=false
updateable=false
,这两种映射都可以根据需要工作

我正在使用JavaSE8、JavaEE7和Payara4.1运行一个基于maven的web应用程序

编辑:

我用Hibernate4.3运行它,但它在更新到5.2.10.Final之后也会发生