2016-04-05 7 views
1

Ich habe Probleme mit meinem @Repository:Spring Data JPA @Query Anmerkung, nativeQuery = true,

@Repository 
public interface RekvZmRepository extends CrudRepository<RekvalZamestn, RekvalZamestnPk> { 
@Query(value = "SELECT z.* FROM rek_zm d INNER JOIN proj_a a ON d.id = a.prj_idcislo" 
    + "         INNER JOIN proj_e e ON a.id = e.id" 
    + "         INNER JOIN rekv_z z ON d.id = z.id" 
    + "WHERE d.id = ?1 AND a.id = ?2 AND e.id = ?3", nativeQuery = true) 
public List<RekvalZamestn> getRekvOsOnDoh(Long dhzmrk, Long prj, Long prje); 
} 

Wenn ich es laufen, Ergebnis:

org.springframework.dao.InvalidDataAccessResourceUsageException: could not 
extract ResultSet; SQL [n/a]; nested exception is 
org.hibernate.exception.SQLGrammarException: could not extract ResultSet 

Als ich SQL laufen es funktioniert, so für mich sieht es aus wie Problem ist nicht mit SQL aber mit meiner @Query.

Antwort

3

Ihre Anfrage, in einzeiligen Format (mehrere Räume zu einem Raum aus Gründen der, ähm, Raum Kondensieren) entspricht

SELECT z.* FROM rek_zm d INNER JOIN proj_a a ON d.id = a.prj_idcislo INNER JOIN proj_e e ON a.id = e.id INNER JOIN rekv_z z ON d.id = z.idWHERE d.id = ?1 AND a.id = ?2 AND e.id = ?3 

Wenn Sie alle Fäden in einer Zeile wie diese verketten, es wird offensichtlich, dass Sie ein Leerzeichen vor der WHERE Klausel fehlt.

+0

Ja, das ist es, oh meine Augen. Vielen Dank. – 1ac0

0

Änderung SELECT z.* FROM zu SELECT z FROM angenommen RekvalZamestn Klasse Karten zu Tabelle rekv_z.

+0

ja, 'RekvalZamestn' steht in der Tabelle' rekv_z' aber es ist native Abfrage. das Ändern von 'z. *' auf nur 'z' funktioniert nicht (jetzt getestet). – 1ac0

Verwandte Themen