如何使用子表设置条件

问题描述 投票:0回答:1

我需要这样的查询:

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);
oracle hibernate criteria
1个回答
1
投票

你需要加入表。使用

criteria.createAlias("src","s");
criteria.add(Restrictions.in("s.Source_KEY", STAY_SOURCE_KEY));
© www.soinside.com 2019 - 2024. All rights reserved.