【发布时间】:2016-01-21 12:51:03
【问题描述】:
在 JPA 中是否可以在动态 VO 中从数据库中加载信息?比如说我想要一个客户表信息的子集,只是姓名和其他一些字段,或者客户的一些字段加上地址表的一些字段在一个对象中。是否可以在不编码的情况下使用这个新的 VO 对象池?考虑到创建一个类的新实例并不是那么高效。 基本上只加载所需的信息(不是整个实体)并将其加载到由这些对象池提供的对象中。有任何想法吗?
【问题讨论】:
在 JPA 中是否可以在动态 VO 中从数据库中加载信息?比如说我想要一个客户表信息的子集,只是姓名和其他一些字段,或者客户的一些字段加上地址表的一些字段在一个对象中。是否可以在不编码的情况下使用这个新的 VO 对象池?考虑到创建一个类的新实例并不是那么高效。 基本上只加载所需的信息(不是整个实体)并将其加载到由这些对象池提供的对象中。有任何想法吗?
【问题讨论】:
当然,您可以创建一个值对象并让您的查询返回这些对象的列表而不是实体。您只需为 VO 创建适当的构造函数并在查询中使用 NEW 关键字,此处记录:http://docs.oracle.com/cd/E12839_01/apirefs.1111/e13946/ejb3_langref.html#ejb3_langref_constructor
另请参阅此答案:JPQL Create new Object In Select Statement - avoid or embrace?
【讨论】:
您可能需要看一下ObjectGraph 概念(在 JPA 2.1 中引入)
【讨论】: