我有一个用复合键定义的hibernate实体,在列上使用id类和id annoation。工作良好。但是我现在想做一个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
语法是什么?
答案 0 :(得分:2)
如果您使用@EmbededId,则必须覆盖equals
和hashCode
方法,而HQL将如下所示。
SELECT mt
FROM MyTable mt
WHERE mt.id
IN(:listOfKeys)