JPA是否可以使用原生查询检索非实体类的示例?
我有一个非实体类,它 Package 了两个实体:
class Wrap{
Entity1 ent1;
Entity2 ent2
}
@Entity
class Entity1{
...
}
@Entity
class Entity2{
...
}
我怎么能做这种事?
Query q = entityManager.createNativeQuery("native select here");
List<Wrap> list = q.getResultList();
4条答案
按热度按时间r7knjye21#
JPA是否可以使用原生查询检索非实体类的示例?
不可以。原生查询只能返回实体 *(如果您通过将
resultClass
或resultSetMapping
传递给createNativeQuery
方法来告诉它们这样做;如果不这样做,您将得到原始数据集合)。在JPQL中,你可以使用构造函数表达式(SELECT NEW...)和非实体构造函数。但是这不支持原生查询,你必须手动操作。
vkc1a9a22#
我是这样做的。
我有很多字段的实体
因此,我有吨的交易,我需要得到每种货币的总和。资料档案库:
DTO
下面是JSON回复:
yzxexxkh3#
没有实体的JPA原生查询-特别是复杂查询(递归,多个连接等)?
这对我来说很有效,但它是特定于Hibernate的:
参见https://www.programmerall.com/article/89371766511/
wwtsj6pe4#
我想我找到解决办法了。有一种方法可以在构造查询时使用NEW关键字。我做了什么来解决这个问题:
ProductType是一个非实体对象,一个实现Serialialabale的简单普通对象。但是你需要定义合适的构造函数。
Happy coding:-)
谢谢你和问候,哈里。