如何将自定义对象ID注入JPA实体
题
我正在使用JPA 2用于企业应用程序,而我的DBA只是扭曲了我。
他们要我 将小组的集中对象ID生成器用于我的所有表. 。这意味着而不是使用表值或序列表,而是 我需要致电Web服务以获取约50个IDS.
然后, 当我坚持任何新对象时,我需要先注入此ID, ,并将其保存到桌子上。
因此,我该如何操纵实体的@ID列来处理此问题。
在我坚持之前设置钥匙一样简单吗?我怀疑这会抛出某种具有ID设置错误的非托管实体。
解决方案
更新:
更好的方法是实际上在生成的字段上指定序列策略并指定自定义序列类。
然后,JPA每次插入新对象时都会调用该类的NextID()方法。
此方法允许在不手动介入每个实体的情况下持续完整图。
弄清楚了。令人惊讶的复杂;) - 只需从密钥字段删除生成值注释即可。
它旨在用于SSN或电子邮件等本地ID,但无论消息来源如何,都可以使用。
@Entity
public class Client{
@Id
@Column(name="CLNT_ID")
private long key;
@Column(name="CLNT_NUM")
private String clientNumber;
...
}
不隶属于 StackOverflow