我们正在尝试从.hbm.xml文件迁移到冬眠注释。
我正在寻找相当于以下XML的注释:
<set name="someSet">
<subselect>
<![CDATA[some long SQL query]]>
</subselect>
<key column="fk" />
<element type="MyUserType" column="value" />
</set>
我知道有@Subselect
,但我不确定如何将其用于我的问题。
我找到了这个问题,但据我了解,我不想为整个实体定义一个视图,而只是为一个领域。
在MyUserType
上宣布它不能实现我的目标,因为它适用于无处不在的MyUserType
。我需要子类MyUserType
,还是有更好的方法?
@OneToMany(mappedBy = "department", fetch = FetchType.LAZY)
@Fetch(FetchMode.SUBSELECT)
private List<Employee> employees = new ArrayList<>();
https://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/hibernate_user_guide.html#fetchml#fetchmode-fetchmode-subselect
我们最终使用数据库视图来解决此问题。
不幸的是,它将查询与代码分开,但这是最小机会偶然破坏某些东西的方法。
据我所知,替换HBM构建体没有直接的@Subselect
通道。