Spring Data JPA gibt das aggregierte Ergebnis von `group by
`als eigenes Objekt zurück, das keine Entität ist.
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")//Es ist eine sinnlose Abfrage, aber ignorieren Sie sie ...
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();
}
}
Wie oben erwähnt, gibt es die entsprechende `` `Schnittstelle``` zurück, um das Ergebnis zu speichern. Sie können entweder JPQL oder native Abfragen verwenden.
Recommended Posts