[英]How to inject custom object ids into JPA entities
我正在将JPA 2用于企业应用程序,而我的DBA却让我有些吃惊。
他们希望我为我的所有表使用组的集中式对象ID生成器 。 这意味着我将不需要调用表值或序列表, 而需要调用Web服务来获取约50个id 。
然后, 当我保留任何新对象时,我需要先注入该ID并将其保存到表中。
因此,我将如何处理实体的@Id列来处理此问题。
就像我坚持之前设置一个键一样简单吗? 我怀疑这会引发某种带有ID设置错误的非托管实体。
更新:
更好的方法是在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;
...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.