Hibernate @OneToMany子查询本机查询

时间:2019-12-06 17:56:13

标签: java hibernate jpa

我有一个与第二个实体的列表具有@OneToMany关系的实体。

@OneToMany(fetch = FetchType.EAGER)
@JoinColumn(name = "PAYLD_ID")
@Fetch(FetchMode.SUBSELECT)
private List<KeyValueEntity> kvList;

因此子查询是单独完成的。我的问题是,当我需要解决一些交叉引用时,如何在子查询上运行自己的查询?

我希望能够在为List执行子查询时提供我自己的本机查询或命名查询。 可以在Hibernate中完成(使用4.2.21版)吗?

主要实体正在使用本机查询:

Payload {

long id;
string cd
@OneToMany(fetch = FetchType.EAGER)
@Fetch(FetchMode.SUBSELECT)

List<KeyValueEntity> kvList;

}

命名的本机查询(为简洁起见):

 select pl.id, sct.cd from payload pl join SCT sct on sct.CSN = pl.TCSN

执行子查询以通过@OneToMany关系检索kvList时,我看到以下查询:

select kv.pl_id, kv.keycode, kv.value from KV kv where kv.pl_id=?

但是,我想将子查询(上面的)更改为:

select kv.pl_id, sct.CD, kv.value from KV kv join SCT sct on kv.keycode=sct.CDN where kv.pl_id=?

有办法吗?

0 个答案:

没有答案