Wenn wir JPA-Abfragen verwenden, werden die erhaltenen Ergebnisse meistens Objekten/spezifischen Datentypen zugeordnet. Wenn wir jedoch Aggregatfunktionen in Abfragen verwenden, erfordert die Verarbeitung der Ergebnisse manchmal, dass wir die JPA-Abfrage anpassen.
Lassen Sie uns (Abteilung, Mitarbeiter) anhand eines Beispiels verstehen −
@Entity public class Dept { @Id private Long id; private String name; @OneToMany(mappedBy = "dep") private List<Employee> emp; //Getters //Setters }
Eine Abteilung kann einen oder mehrere Mitarbeiter haben, aber ein Mitarbeiter kann nur einer Abteilung angehören.
@Entity public class Employee { @Id private Long id; private Integer joiningyear; @ManyToOne private Dept dep; //Getters //Setters }
Wenn wir nun das Beitrittsdatum und die Anzahl der nach Beitrittsdatum gruppierten Mitarbeiter erhalten möchten,
@Repository public interface EmployeeRepository extends JpaRepository<Employee, Long> { // query methods @Query("SELECT e.joiningyear, COUNT(e.joiningyear) FROM Employee AS e GROUP BY e.joiningyear") List<Object[]> countEmployeesByJoiningYear(); }
Die obige Abfrage funktioniert einwandfrei, aber das Speichern von Werten in der Form List
Die chinesische Übersetzung vonpackage com.tutorialspoint; public class CountEmployees { private Integer joinyear; private Long totalEmp; public CountEmployees(Integer joinyear, Long totalEmp) { this.joinyear = joinyear; this.totalEmp = totalEmp; } //Getters //Setters }
Jetzt können wir unsere JPA-Abfrage wie unten gezeigt anpassen −
@Query("SELECT new com.tutorialspoint.CountEmployees(e.joiningyear, COUNT(e.joiningyear)) " + "FROM Employee AS e GROUP BY e.joiningyear") List<CountEmployees> countEmployeesByJoining();
Die Ergebnisse der obigen Auswahlabfrage werden der CountEmployees-Klasse zugeordnet. Auf diese Weise können wir JPA-Abfragen anpassen und die Ergebnisse Java-Klassen zuordnen.
Das obige ist der detaillierte Inhalt vonWie kann ich die Ergebnisse einer JPA-Abfrage mithilfe von Aggregatfunktionen anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!