다 대다 관계 작업을 위해 조인 테이블 내에서 쿼리를 얻으려고 노력했습니다. 이 쿼리는 특정 게임을 팔로우하는 사용자 수를 계산하기위한 것입니다. 엔티티 자체는 다음과 같이 매우 간단합니다.
@Entity
@Table(name = "followed_users_games", uniqueConstraints = {
@UniqueConstraint(columnNames = "followed_id")
})
public class FollowedEntity {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Column(name = "followed_id", unique = true, nullable = false)
private Integer followedId;
@ManyToOne
@JoinColumn(name = "game_id")
private GameEntity games;
@ManyToOne
@JoinColumn(name = "user_id")
private UserEntity users;
@Column(name = "notify")
@NonNull private Boolean notify;
}
그리고 내가 실행하려고 시도한 쿼리는 다음과 같습니다.
@Query("select f.gameId, count(f) as usercount from FollowedEntity f group by f.games.gameId order by usercount desc")
List<GameEntity> findMostFollowed(Pageable pageable);
내 데이터베이스 자체에서 쿼리를 테스트했는데 제대로 작동하는 것 같습니다. 그러나 내 응용 프로그램은 다음과 같은 오류를 반환합니다.
org.postgresql.util.PSQLException: ERROR: column "gameentity1_.game_id" must appear in the GROUP BY clause or be used in an aggregate function
어떤 도움을 주시면 감사하겠습니다.