如何获取定义了多个@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);
答案 0 :(得分:3)
您需要使用@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);