JPA/Hibernate在联接时选择列子集
在SQL中,很容易进行联接,只从联接表返回所需的列。在JPA/Hibernate中映射这一点的最佳方法是什么 例如,有一个文件夹实体映射到EMAIL_文件夹,还有一个EMAIL实体映射到EMAIL表。从文件夹到电子邮件之间存在一对多关系。电子邮件实体相当重,因为它包含文本、附件等的CLOB。在某些情况下,我们需要取回整个电子邮件,而在其他情况下,我们只想取回发件人姓名、主题和发送日期,而不希望带来CLOB数据的内存开销。在SQL中实现这一点很简单,但我不确定在JPA/Hibernate中最好的方法是什么 我正在考虑创建一个只映射到senderName、subject和sentDate的LightEmail。这是处理这种事情的最好方法吗 更新:在这一点上,我希望尽可能避免字节码插装。将属性(CLOB)注释为JPA/Hibernate在联接时选择列子集,hibernate,jpa,join,mapping,Hibernate,Jpa,Join,Mapping,在SQL中,很容易进行联接,只从联接表返回所需的列。在JPA/Hibernate中映射这一点的最佳方法是什么 例如,有一个文件夹实体映射到EMAIL_文件夹,还有一个EMAIL实体映射到EMAIL表。从文件夹到电子邮件之间存在一对多关系。电子邮件实体相当重,因为它包含文本、附件等的CLOB。在某些情况下,我们需要取回整个电子邮件,而在其他情况下,我们只想取回发件人姓名、主题和发送日期,而不希望带来CLOB数据的内存开销。在SQL中实现这一点很简单,但我不确定在JPA/Hibernate中最好的方
@Basic(fetch=FetchType.LAZY)
请参阅Hibernate参考资料中的文档“惰性属性加载需要构建时字节码插装!如果您的持久性类没有得到增强,Hibernate将默默地忽略惰性属性设置并返回到立即获取。”然后它继续说“不同的(更好的?)避免不必要的列读取的方法,至少对于只读事务,是使用HQL或Criteria查询的投影功能。这避免了构建时字节码处理的需要,当然是首选解决方案。”