我有一个嵌入式复合键,由两列
组成@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语句?
答案 0 :(得分:1)
如果您需要2列来识别MyObject,那么只提供一个列就不足以每次都查找唯一的结果。 Session
和EntityManager
都不提供您正在寻找的方法。您必须使用Criteria
或Query
。