我需要这样的查询:
select * from TABLE where Source_KEY in (1,2);
我的Hibernate类是这样的:
@Entity
@Table(name = "TABLE", schema = "SCH")
public class Table {
private Long key;
private Long id;
private Source src;
}
Source is another entity class,
@Entity
@Table(name = "SOURCE", schema = "SCH")
public class Source{
private Long Source_KEY;
}
现在我已经写了一个标准,但它似乎有一个问题。请允许任何人就此提出建议。
private static final List<String> STAY_SOURCE_KEY = asList(1,2);
criteria.add(Restrictions.in("Source_KEY", STAY_SOURCE_KEY));
这应该是Source类的列表,但是如何在条件中使用它。它必须形成类似的查询
select * from TABLE where Source_KEY in (1,2);
你需要加入表。使用
criteria.createAlias("src","s");
criteria.add(Restrictions.in("s.Source_KEY", STAY_SOURCE_KEY));