[JAVA] spring-data-jpa @Query gibt ein benutzerdefiniertes Objekt zurück

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

spring-data-jpa @Query gibt ein benutzerdefiniertes Objekt zurück
Ich möchte ein Objekt im CSV-Format mit mehrzeiligem Header und Filter in Java zurückgeben
Codieren Sie Abfrageparameter im Frühjahr mit Uri Components Builder
Abfragen von Arrays in jsonb mit Rails + postgres
Wertobjekt in 3 Minuten
Zuordnung zu einer Klasse mit einem Wertobjekt in How to My Batis