慕碼人2483693
2023-08-04 19:07:35
我有一個使用 kotlin 的 Spring Boot v 2.1.8.RELEASE 項目。我們使用 postgres 數據庫,我有以下 JPA 查詢 @Query(value = " SELECT distinct grievance " + " FROM Grievance grievance" + " WHERE (grievance.auditProgramPortal=:auditProgramPortal AND grievance.owner.id=:organizationId) " + " OR (grievance.status=:status AND grievance.auditProgramPortal=:auditProgramPortal)" + " OR (grievance.auditProgramPortal=:auditProgramPortal AND grievance.owner.id=:organizationId)" + " OR (grievance.auditProgramPortal=:auditProgramPortal AND grievance.publicSubmission=:publicSubmission)")fun findAnalystBodyGrievances( auditProgramPortal: Boolean, organizationId: Long, status: GrievanceStatus, publicSubmission: Boolean, pageable: Pageable): Page<Grievance>當我按原樣運行它時 - 它工作得很好。當我對行業字段進行排序時(參見下面的對象) - 我收到以下錯誤org.postgresql.util.PSQLException: ERROR: for SELECT DISTINCT, ORDER BY expressions must appear in select list相關對象的片段如下申訴@Entity@Audited@Table(name = "grievance")class Grievance { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") var id: Long? = null @Column(name = "title", nullable = false) var title: String? = null @Column(name = "description", columnDefinition = "text") var description: String? = null @Column(name = "public_description", columnDefinition = "text") var publicDescription: String? = null @Column(name = "related_to_identified_risk") var relatedToIdentifiedRisk: Boolean? = null @OneToOne @JoinColumn(name = "industry_id") var industry: Industry? = null }行業@Entity@Table(name = "industry")class Industry { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") var id: Long? = null @Column(name = "name", nullable = false, unique = true) var name: String? = null @Column(name = "color", nullable = false, unique = false) var color: String? = null}
1 回答

狐的傳說
TA貢獻1804條經驗 獲得超3個贊
嘗試下面
@Query(value =" Select grievance from (SELECT distinct grievance, grievance.industry " +
" FROM Grievance grievance" +
" WHERE (grievance.auditProgramPortal=:auditProgramPortal AND grievance.owner.id=:organizationId) " +
" OR (grievance.status=:status AND grievance.auditProgramPortal=:auditProgramPortal)" +
" OR (grievance.auditProgramPortal=:auditProgramPortal AND grievance.owner.id=:organizationId)" +
" OR (grievance.auditProgramPortal=:auditProgramPortal AND grievance.publicSubmission=:publicSubmission))")
添加回答
舉報
0/150
提交
取消