我有一个带有本机查询的 Spring Data 存储库方法
@Query(value = "SELECT g.*, gm.* FROM group g LEFT JOIN group_members gm ON g.group_id = gm.group_id and gm.user_id = :userId WHERE g.group_id = :groupId", nativeQuery = true)
GroupDetails getGroupDetails(@Param("userId") Integer userId, @Param("groupId") Integer groupId);
我想将结果映射到非实体 POJO GroupDetails
。
有可能吗?如果可以,请举个例子好吗?
原文由 alexanoid 发布,翻译遵循 CC BY-SA 4.0 许可协议
假设 GroupDetails 与 orid 的回答相同,您是否尝试过 JPA 2.1 @ConstructorResult ?
并在存储库界面中使用以下内容:
根据 Spring Data JPA 文档,spring 将首先尝试查找与您的方法名称匹配的命名查询 - 所以通过使用
@NamedNativeQuery
,@SqlResultSetMapping
和@ConstructorResult
应该能够实现这种行为