我知道可以使用@SqlResultSetMapping
,但我想从数据库中选择不是整个实体,而是选择一些字段,然后使用接受该字段的构造函数之一将i映射到我的实体。是否可以将结果与@EntityResult
仅映射到@FieldResult
?我试图这样做,并且我一直得到错误,表示没有为该实体中存在的某些字段指定映射。
答案 0 :(得分:1)
@SqlResultSetMapping的缺点是你必须选择所有列。
执行此操作的替代方法是手动迭代数据结果并填充对象。
答案 1 :(得分:1)
好吧,如果您使用JPA 1.0
唯一选项(当然不考虑手动映射),则使用@SqlResultSetMapping
并映射整个表列。使用JPA 2.1
,您可以添加javax.persistence.ConstructorResult
(请参阅文档here)以仅映射所需的列。