Spring Data JPA renvoie le résultat agrégé de `` group by` '' comme son propre objet qui n'est pas une entité.
pom.xml
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.3.RELEASE</version>
	</parent>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-jpa</artifactId>
		</dependency>
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
    @Query("select u.userId as userId, count(*) as cnt from User u group by u.userId")//C'est une requête inutile, mais ignorez-la ...
    List<Result> list();
    @Query(value = "select user_id as userId, count(*) as cnt from users group by userId", nativeQuery = true)
    List<Result> list2();
    public static interface Result {
        public Long getUserId();
        public int getCnt();
    }
}
Comme mentionné ci-dessus, il renvoie l '«interface» appropriée pour contenir le résultat. Vous pouvez utiliser JPQL ou une requête native.
Recommended Posts