如何获取定义了多个 @Id
属性的域对象?
class Test {
@Id
private String first;
@Id
private String second;
}
//how can I pass multiple IDs to find with entitymanger?
em.find(Test.class, id);
最佳答案
您需要使用 @IdClass
或 @EmbeddedId
注释来映射复合主键(详见 here)。
然后将复合类的实例传递给 find
方法。
所以基本上你的例子应该是这样的:
@Entity
@IdClass(TestPK.class)
public class Test {
@Id
private String first;
@Id
private String second;
}
TestPk {
private String first;
private String second;
}
em.find(Test.class, testPKInstance);
关于java - 查找具有多个 ID 属性的域对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21041663/