【发布时间】:2015-07-17 16:59:15
【问题描述】:
我有一个用复合键定义的休眠实体,在列上使用 id 类和 id 注释。工作正常。但是我现在想做一个composite key query。
Select mt
from MyTable mt
where (mt.id, mt.column2) in (:myListOfCompositeKeys)
什么是使用 HQL 的语法,当我定义如下实体时(不使用 embeddedId)。
@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 的语法是什么?
【问题讨论】:
-
如果你这样做 entityManager.find(entityClass, id);使用类型 if id = MyKey 就可以了。
-
不幸的是,@nicearma 仅限于 HQL