我正在使用JPA 2进行企业应用程序,而我的DBA只是给我带来了麻烦。
他们希望我在我的所有表格中使用群组的集中对象ID生成器。这意味着而不是使用表值或序列表,我需要调用一个Web服务来获得一批~50个。
然后,因为我坚持使用任何新对象,我需要首先注入此ID ,然后将其保存到表中。
那么我如何操纵实体的@Id列来处理这个问题。
在我坚持之前设置密钥是否简单?我怀疑会抛出某种ID设置错误的非托管实体。
答案 0 :(得分:1)
更新
更好的方法是在Generated字段上实际指定Sequence策略并指定自定义Sequence类。
每次插入新对象时,JPA都会调用此类的nextId()方法。
此方法允许持久保存完整图表,而无需手动干预每个实体。
想出来。非常复杂;) - 只需从关键字段中删除GeneratedValue注释。
适用于SSN或电子邮件等原生ID,但无论来源如何都可以使用。
@Entity
public class Client{
@Id
@Column(name="CLNT_ID")
private long key;
@Column(name="CLNT_NUM")
private String clientNumber;
...
}