2016-04-13 4 views
1

Ich verwende Spring JPA-Framework mit Implementierung von Hibernate. erklärte ich eine Abfrage in A BaseRepository wie unten:BaseRepository Abfrage-Entity-Liste Return-Liste von Objekt-Array

@NoRepositoryBean 
public interface BaseRepository<T, ID extends Serializable> extends PagingAndSortingRepository<T, ID>, QueryDslPredicateExecutor<T> { 
    @Query("select e.id,e.name from #{#entityName} e where e.state=1 and e.name like CONCAT(:name,'%')") 
    List<T> findIdAndNameByNameStartingWith(@Param("name") String name); 
} 

Und in einem Controller verwenden

@RequestMapping("/list/byName") 
    public HttpApiResponse findAllByNameLike(@RequestParam(defaultValue = "") String name) { 
     List<Platform> platforms = platformRepository.findIdAndNameByNameStartingWith(name); 
     return HttpApiResponse.doSuccess(platforms); 
    } 

Aber wenn ich Debug-I findIdAndNameByNameStartingWith() Rückkehr Liste wie [[ 'Hotel' gefunden, 1], [ "Reisen", 2]] statt List<Platform>. Kann mir jemand einen Rat geben, vielen Dank!

Antwort

0

Es gibt, was Sie

select e.id,e.name from #{#entityName} e where e.state=1 and e.name like CONCAT(:name,'%')

Versuch bitten, von zu

select e from #{#entityName} e where e.state=1 and e.name like CONCAT(:name,'%')

+0

Ändern Frage an 'select e zu ändern ...' kann funktioniert, aber ich will nicht JPA um alle Felder in dieser Tabelle abzurufen, da diese Schnittstelle am häufigsten aufgerufen wird und einige Spalten große Datenmengen speichern. – BilboDai

Verwandte Themen