Spring Data JPA 提供了执行 JPQL 查询和检索结果的机制自定义对象。
第 1 步:定义 Bean 类
创建一个简单的 Bean 类来表示所需的对象结构:
<code class="java">public class SurveyAnswerStatistics { private String answer; private Long count; // Constructor for object instantiation }</code>
第 2 步:在存储库方法中使用 Bean
修改存储库方法以返回 Bean 类的实例:
<code class="java">public interface SurveyRepository extends CrudRepository<Survey, Long> { @Query("SELECT new com.path.to.SurveyAnswerStatistics(v.answer, COUNT(v)) FROM Survey v GROUP BY v.answer") List<SurveyAnswerStatistics> findSurveyCount(); }</code>
如果使用本机查询,则不支持 JPA 特定语法。相反,请使用:
第 1 步:创建投影接口
定义投影接口以指定所需对象的属性:
<code class="java">public interface SurveyAnswerStatistics { String getAnswer(); int getCnt(); }</code>
步骤 2:在查询中映射结果字段
在查询中使用 SQL AS 关键字将结果字段映射到投影属性:
<code class="java">@Query(nativeQuery = true, value = "SELECT v.answer AS answer, COUNT(v) AS cnt FROM Survey v GROUP BY v.answer") List<SurveyAnswerStatistics> findSurveyCount(); }</code>
以上是如何从 Spring Data JPA 分组查询结果中检索自定义对象?的详细内容。更多信息请关注PHP中文网其他相关文章!