如何通过JPARepository将此SQL表达式转换为JPSQ自定义@Query并映射到Java Spring Boot中的新对象
SELECT DOCUMENT_TYPE.TITLE, SUM(case when DOCUMENT.DOCUMENT_STATE = 1 then 1 else 0 end) as CREATED, SUM(case when DOCUMENT.DOCUMENT_STATE = 0 then 1 else 0 end) as SUBMITTED FROM DOCUMENT_TYPE JOIN DOCUMENT ON DOCUMENT_TYPE.ID = DOCUMENT.DOCTYPE_ID WHERE DOCUMENT.DOCTYPE_ID IN ('93227282-713d-4465-b296-a215b917a0b0', 'a9b29894-9952-4ec4-b854-d19f01c28a37') GROUP BY DOCUMENT_TYPE.TITLE
我有实体:
Document.java 映射了一种与 DocumentType
的关系@ManyToOne
@JoinColumn(name = "doctype_id")
private DocumentType documentType;
private DocumentState documentState;
文档状态是数据库中用0、1 ...整数表示的枚举。
如何分别选择DocumenType.title,状态为1和0的文档汇总并将其映射到具有字段的新Object TypeStats.java
public class TypeStats {
private String title;
private Long stateSubmitted;
private Long stateApproved;
因此,最后我想查询有关具有两个不同状态(提交和批准)的文档的总和(每个文档分别)的信息,并将文档类型id作为参数传递。如何使用单个JPQL查询并将其映射到新对象。