java - 查找具有多个 ID 属性的域对象?

标签 java hibernate

如何获取定义了多个 @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/

相关文章:

java - Spring CrudRepository 未保存超过 32,000 个字符

java - hibernate 。将带有外键的对象保存到数据库。 MySQLIntegrityConstraintViolationException : Column cannot be null

java - 如何加载持久的 Hibernate 实体进行绑定(bind),以便非表单属性不会丢失?

java - 我有一个离线 SQLite 数据库,我想使其在线并使用它

Java 6 : How to set up UndoManager to work with a canvas?

java - Java InputStream 到 OutputStream 的非阻塞回显

java - 生成的pdf文件保存在项目文件夹内

java - 在 Hibernate 中设置列​​格式

java - 如何解决 Spring Data JPA 中的 LazyInitializationException?

java - Tomcat服务器欢迎页面返回所请求的资源不可用