Hibernate注释等效于<set> <subselect>

时间:2018-03-28 08:27:08

标签: java hibernate

我们正在尝试从.hbm.xml文件迁移到Hibernate注释。

我正在搜索以下XML的注释:

<set name="someSet">
    <subselect>
        <![CDATA[some long SQL query]]>
    </subselect>
    <key column="fk" />
    <element type="MyUserType" column="value" />
</set>

我知道有@Subselect,但我不确定如何将它用于我的问题。

我找到了this question,但据我所知,我不想为整个实体定义一个视图,只是针对那个字段。

MyUserType上声明它并没有实现我的目标,因为它适用于所有使用MyUserType的地方。我需要继承MyUserType,还是有更好的方法?

2 个答案:

答案 0 :(得分:0)

@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#fetching-fetchmode-subselect

答案 1 :(得分:0)

我们最终使用数据库视图来解决此问题。

不幸的是,它会将查询与代码分开,但这是意外破坏某些东西的机会最少的方法。

据我所知,没有直接的@Subselect注释来替换该hbm构造。