JPA:将本机查询提取的一组表列映射到实体

时间:2018-03-19 07:51:10

标签: jpa jpql

我知道可以使用@SqlResultSetMapping,但我想从数据库中选择不是整个实体,而是选择一些字段,然后使用接受该字段的构造函数之一将i映射到我的实体。是否可以将结果与@EntityResult仅映射到@FieldResult?我试图这样做,并且我一直得到错误,表示没有为该实体中存在的某些字段指定映射。

2 个答案:

答案 0 :(得分:1)

@SqlResultSetMapping的缺点是你必须选择所有列。

执行此操作的替代方法是手动迭代数据结果并填充对象。

答案 1 :(得分:1)

好吧,如果您使用JPA 1.0唯一选项(当然不考虑手动映射),则使用@SqlResultSetMapping并映射整个表列。使用JPA 2.1,您可以添加javax.persistence.ConstructorResult(请参阅文档here)以仅映射所需的列。