首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用继承区分id GenerationType的JPA

利用继承区分id GenerationType的JPA
EN

Stack Overflow用户
提问于 2013-08-06 15:49:49
回答 2查看 211关注 0票数 0

我有两个不同的数据库D1,D2和一个表T。

T有一个主键列id,它是在D1中自动生成的,在D2中是一个简单的整数。我必须将记录从D1中的T转换为D2中的T,因此我用JPA将T映射为@实体。问题是,@ID是@GeneratedValue(GenerationType.IDENTITY= D1 ),而不是D2。

是否有避免复制实体的解决方案?我注意到,使用@MappedSuperclass时,我需要一个@Id列,但在我的例子中,这正是我想要专门研究的。我找到的唯一解决方案是生成两个不同的类,引用除@id以外相同的表.还有更好的吗?

(如果我使用一个常见的抽象类,在定义@NamedQueries时会遇到问题,因为似乎无法引用继承的字段(从专用m选择m,其中m.aBaseField= :aBaseField)返回一个异常:“状态字段路径'm.aBaseField‘不能解析为有效类型。”

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-08 19:33:46

我没有找到真正的解决办法。我结束的工作是复制提供不同@实体(name=“name1”)的类,并删除其中一个的@GenerationType注释。在持久化单元中,我根据将要做的事情使用其中一个或另一个。

票数 0
EN

Stack Overflow用户

发布于 2013-08-07 13:35:56

我将定义两个不同的持久性单元,一个用于每个数据库。然后,您可以使用orm.xml文件自定义一个。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18084806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档