我有两个不同的数据库 D1、D2 和同一个表 T。
T 有一个主键列 id,它在 D1 中自动生成,在 D2 中是一个简单的整数。我必须将记录从 D1 中的 T 转移到 D2 中的 T,因此我将 T 映射为带有 JPA 的 @Entity。问题是 @ID 是 @GeneratedValue(strategy = GenerationType.IDENTITY) 对于 D1 但不是 D2。
有没有不复制实体的解决方案?我注意到使用@MappedSuperclass 我需要一个@Id 列,但就我而言,这是我想要专攻的。我找到的唯一解决方案是生成两个不同的类,它们引用同一个表,除了@id 之外是相同的......还有什么更好的吗?
(如果我使用常见的抽象类,我在定义@NamedQueries 时会遇到问题,因为似乎无法引用继承的字段(SELECT m FROM Specialized m WHERE m.aBaseField= :aBaseField)返回异常:“状态字段路径” m.aBaseField' 无法解析为有效类型。”