我想使用spring数据从表中获取聚合数据。
largest = None
smallest = None
while True:
num = input("Enter a number: ")
if num == "done":
break
try:
vt = int(num)
except:
print("Invalid input")
continue
if largest is None:
largest = vt
elif vt > largest:
largest = vt
print("Maximum is",largest)
elif smallest is None:
smallest = vt
elif vt < smallest:
smallest = vt
print("Minimum is",smallest)
@Query("SELECT COUNT(*) AS TOTAL_1, MAX(FIELD_1) AS MAX_1 FROM TABLE_NAME WHERE GROUP_ID = :groupId")
Mono<SummaryEntity> getSummary(@Param("groupId" Long groupId));
但是我收到此错误:“无法读取属性@ org.springframework.data.annotation.Id()“ ...
应该没有ID,只有一行包含摘要数据。
关于获取摘要数据的任何想法?
(代码更复杂,但为此已清除)
答案 0 :(得分:0)
首先,如果您需要由JPA管理实体SummaryResponse并最终对其进行持久化,则需要将其注释为@Entity并为其分配ID或复合ID(以@Id注释)。
如果您只想使用该DTO来获取数据,则可以为此使用基于Spring接口的投影:
public interface SummaryResponseProjection{
getTotal1();
getMax1();
}
,然后将其用于映射查询结果:
@Query("SELECT COUNT(*) AS TOTAL_1, MAX(FIELD_1) AS MAX_1 FROM TABLE_NAME WHERE GROUP_ID = :groupId")
Mono<SummaryResponseProjection> getSummary(@Param("groupId" Long groupId));
答案 1 :(得分:0)
找到原因:
此方法是定义为ReactiveCrudRepository<RawEntity, Long>
的存储库的一部分,其中RawEntity
的ID已定义。
将方法移至定义为ReactiveCrudRepository<SummaryEntity, Void>
的新存储库中即可解决此问题。
谢谢!