hibernate - JPA/Hibernate在加入时选择列子集

标签 hibernate jpa join mapping

在 SQL 中,很容易进行连接,并且只从连接表中返回您想要的列。在 JPA/Hibernate 中映射它的最佳方法是什么?

例如,有一个文件夹实体映射到 EMAIL_FOLDER,一个电子邮件实体映射到 EMAIL 表。从文件夹到电子邮件是一对多的关系。 Email 实体相当重,因为它包含文本、附件等的 CLOB。在某些情况下,我们需要取回整个电子邮件,而在其他情况下,我们只想带回 senderName、subject 和 sentDate 以及不希望引入 CLOB 数据的内存开销。在 SQL 中实现这一点很简单,但我不确定在 JPA/Hibernate 中最好的方法是什么。

我正在考虑创建一个仅映射到 senderName、subject 和 sentDate 的 LightEmail。这是处理此类事情的最佳方法吗?

更新:此时我想尽可能避免使用字节码检测。

最佳答案

将属性 (CLOB) 注释为 @Basic(fetch=FetchType.LAZY)
Declaring basic property mappings在 hibernate 引用

关于hibernate - JPA/Hibernate在加入时选择列子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/255703/

相关文章:

java - hql join 无法解析属性;使用两个表映射

java - java中出现hibernate session 错误

java - Hibernate Envers 审计非审计实体

java - 用户 root 在 Hibernate 中已拥有超过 'max_user_connections' 个 Activity 连接

java - 如果 Oracle 数据库表中的列类型为 CHAR(4 BYTE),为什么我无法使用 JPA 更新长度为 3 的字符串值的行?

java - JPA native 查询插入返回 id

java - 当实体包含 UUID 时,H2 数据库的 Hibernate 数据库架构验证失败

jpa - 即使 EntityManager 已被清除()、关闭()并设置为 null,JAXB 也会急切地获取标记为 FetchType.LAZY 的字段

mysql - Symfony Doctrine 将相关实体加入鉴别器列

sql - 将嵌套查询转换为联接