我有一个使用复合键定义的 hibernate 实体,在列上使用 id 类和 id 注释。工作正常。不过我现在想做一个 composite key query 。
Select mt
from MyTable mt
where (mt.id, mt.column2) in (:myListOfCompositeKeys)
当我定义了如下所示的实体(不使用embeddedId)时,使用HQL的语法是什么。
@Entity
@IdClass(MyKey.class)
@Table(name = "MY_TABLE")
public class MyTable implements Serializable {
@Column(name = "ID")
@Id
private Long id;
@Column(name = "Column2")
@Id
private Long column2;
或者我是否需要使用embeddedId
,如果是的话,HQL
语法是什么?
最佳答案
如果您使用@EmbededId ,您必须重写 equals
和 hashCode
方法和 HQL,因为它会如下所示。
SELECT mt
FROM MyTable mt
WHERE mt.id
IN(:listOfKeys)
关于java - 使用 HQL 和单独的 IdClass 进行复合键查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30095676/