java - Hibernate @OneToMany 子选择本机查询
问题描述
我有一个与第二个实体列表有@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=?
有没有办法做到这一点?
解决方案
推荐阅读
- windows-7 - 如何恢复已删除的 EFS 证书
- vim - VIM 替换部分模式
- gitlab - 有没有办法在 gitlab 的索引页面中显示所有子 wiki?
- java - 用于匹配有效 Java 标识符的 Java 正则表达式
- javascript - 正则表达式只有在它之前有数值时才替换
- laravel - 如何限制laravel中的望远镜条目?
- html - 如何正确使用 FontAwesome 图标而不是默认列表项目符号?
- ios - 如何使用 XMPPFramework 以相反的顺序检索归档消息?
- android - 使用 Intent.ACTION_PICK 重新拾取图像
- python - 在 Tkinter 中执行此操作的更好方法?