Hibernate 5.x基于部分复合id删除记录?

时间:2016-07-27 15:38:26

标签: java hql hibernate-5.x

我有一个嵌入式复合键,由两列

组成
@Embeddable
public static class PK implements Serializable {

    private static final long serialVersionUID = 4049628068378058196L;

    @Column(name="colA", length=32, nullable=false)
    private String colA;

    @Column(name = "colB", length=32, nullable=false)
    private String colB;

   //constructors/getters/setters
}

我是否可以仅使用colB值删除持久对象,例如

 Serializable id = new String(myColBValue);

 Object persistentInstance = session.get(MyObject.class, id);
 if (persistentInstance != null) {
            session.delete(persistentInstance);    
 }

还是我不得不求助于使用HQL语句?

1 个答案:

答案 0 :(得分:1)

如果您需要2列来识别MyObject,那么只提供一个列就不足以每次都查找唯一的结果。 SessionEntityManager都不提供您正在寻找的方法。您必须使用CriteriaQuery