Spring data jpa, jparepository Rücksendung Liste von string anstelle von DTO-Objekt

Ich habe eine interface Umsetzung JPARepository und haben drei Methoden, eine davon ist eine benutzerdefinierte @Query.

public interface PersonRepository extends JpaRepository<Person, Long> {

  List<Person> getPersonBycountryCode(String countryCode);

  List<Person> findByCountryCodeAndCity(String string,String city);

  @Query(value = "SELECT person.firstName as firstName, person.lastName as lastName, person.countryCode as country, person.city as city,"
              + " SQRT(POWER((69.1 * (person.age - :age )) , 2 )"
              + " + POWER((53 * (person.experience - :experience )), 2)) as eligibility"
              + " FROM Person person"
              + " ORDER BY eligibility ASC")
  List<PersonDetailsDto> findPersonDetailsByEligibility(
          @Param("age") BigDecimal age,
          @Param("experience") BigDecimal experience,
          Pageable pageable
  );
}

Problem ist: Methode mit @Query nicht zurückgeben der Liste der PersonDetailsDto aber zurückgeben der Liste der Liste der strings (List<List<String>>).

PersonDetailsDto ist ein POJO-Klasse mit allen Variablen beschrieben, die in einer Abfrage-Ausgabe (Vorname, Nachname, Land, Stadt -, Zulassungs -) und auch ein Konstruktor mit allen Variablen als Parameter. Zwei andere Methoden zurück Liste von Person-Objekt.

Irgendeine Idee?

  • Zunächst einige, die syntax ist ungültig JPQL (POWER, SQRT). Zweitens haben Sie nicht angegeben Ergebnis Klasse für die Abfrage ein (oder benutzte "NEUE PersonDetailsDto(...)" in der JPQL).
Schreibe einen Kommentar