【发布时间】:2019-02-17 05:40:45
【问题描述】:
我正在尝试从 spring data jpa 返回自定义对象 - 本机查询
这是我到目前为止所做的事情 How to return a custom object from a Spring Data JPA GROUP BY query
我应该能够像这样创建查询:
Query(nativeQuery = true, value = "select sc.case_type as caseType, sc.revision as revision from smart_casemodel sc minus select s.casetype, s.revision from smart_case s")
List<CtRevOnly> findNotUsedCasemodels();
我声明了投影接口
public interface CtRevOnly {
String getCaseType();
String getRevision();
}
然后简单地调用它
caseModelRepository.findNotUsedCasemodels();
但是我得到了一个例外
javax.persistence.PersistenceException: org.hibernate.MappingException:未知实体: javax.persistence.Tuple
知道我做错了什么吗?
【问题讨论】:
-
您需要将您的查询从 SQL 查询更改为 JPQL 查询,并使 CtRevOnly 成为一个类而不是一个接口,从您引用的链接中检查答案。
-
在 JPQL 部分下方接受的答案中是关于本机查询的部分,这是我感兴趣的。我知道它可以通过其他方式完成,我对本机查询和干净代码感到好奇。我想使用投影使其工作。没有提到它更难将其更改为 JPQL,因为不支持“减号”。使用接口的官方文档以及docs.spring.io/spring-data/jpa/docs/current/reference/html/…
标签: java spring hibernate spring-data-jpa