java - Hibernate 注释相当于 <set><subselect>

标签 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 ,但据我了解,我不想为整个实体定义一个 View ,而只是为那个字段定义一个 View 。

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

关于java - Hibernate 注释相当于 <set><subselect>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49529571/

相关文章:

java - 如何并行执行oracle java存储过程

java - 通过多个映射对实体进行映射中的重复列

java - Hibernate 的通用 get 方法

java - Orders 和 Employee 之间的 JPA 关系

java - 我可以定义 Map<String, List< 吗?扩展 BaseView>> 以便我可以从 map 中 get() 列表而无需未经检查的转换?

java - "or"嵌入文档java中的条件

java - 什么样的对象应该在ioc下

java - 如何调用另一个项目的项目类?

java - 集成测试 - Hibernate 和 DbUnit

java - Play Framework 2.5 在另一个线程中接收数据时没有 EntityManager 错误