繁体   English   中英

如何将自定义对象ID注入JPA实体

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM