休眠注释等效于<set><subselect>



我们正在尝试从.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通道。

最新更新