如何使用子表设置条件

时间:2019-03-22 15:55:38

标签: oracle hibernate criteria

我需要这样的查询:

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);

1 个答案:

答案 0 :(得分:1)

您需要加入表格。使用

criteria.createAlias("src","s");
criteria.add(Restrictions.in("s.Source_KEY", STAY_SOURCE_KEY));