2016-07-02 1 views
0

私は1つのテーブルを複数回クエリする必要があるSpringアプリケーションでJPAカスタムクエリを使用しています。jpaクエリエラー:複数の部分の識別子をバインドできませんでした

私はリポジトリにこのクエリを記述します。

@Query(value="SELECT *"+ 
"FROM TBLSTUDENTEQUALITY as e"+ 
"left join VLE_LOOKUP_DATA as di on e.DISABLE_ID=di.ID"+ 
"left join VLE_LOOKUP_DATA as d on e.DOMICILE_ID=d.ID"+ 
"left join VLE_LOOKUP_DATA as n on e.ETHNIC_ID=n.ID"+ 
"left join VLE_LOOKUP_DATA as g on e.GENDER_ID=g.ID"+ 
"left join VLE_LOOKUP_DATA as na on e.NATIONALITY_ID=na.ID"+ 
"left join VLE_LOOKUP_DATA as s on e.SEX_ID=s.ID"+ 
"left join VLE_LOOKUP_DATA as o on e.SEXORT_ID=o.ID"+ 
"left join VLE_LOOKUP_DATA as r on e.RELIGION_ID=r.ID"+ 
"where STUDENT_ID=?1",nativeQuery=true) 
public List<StudentEquality> getAll(Long ID); 

このクエリは、SQL Serverの中で正常に実行されますが、スプリングブートアプリケーションで、のようなエラーを生成している:私はe.disable-id行を削除した場合、それが来る

java.sql.SQLException: The multi-part identifier "e.DISABLE_ID" could not be bound. 

私は多くのリソースを主に調査しましたが、これはカラムやテーブル名が存在しないことを示唆していますが、これが当てはまる場合はSQLサーバにもエラーが発生するはずです。

+0

11日後に応答が返されませんでした。 –

答えて

1

各文の最後に句の間にスペースがないため、クエリは無効です。各行の前または後に空白を追加します。

@Query(value="SELECT * "+ 
"FROM TBLSTUDENTEQUALITY as e "+ 
"left join VLE_LOOKUP_DATA as di on e.DISABLE_ID=di.ID "+ 
"left join VLE_LOOKUP_DATA as d on e.DOMICILE_ID=d.ID "+ 
"left join VLE_LOOKUP_DATA as n on e.ETHNIC_ID=n.ID "+ 
"left join VLE_LOOKUP_DATA as g on e.GENDER_ID=g.ID "+ 
"left join VLE_LOOKUP_DATA as na on e.NATIONALITY_ID=na.ID "+ 
"left join VLE_LOOKUP_DATA as s on e.SEX_ID=s.ID "+ 
"left join VLE_LOOKUP_DATA as o on e.SEXORT_ID=o.ID "+ 
"left join VLE_LOOKUP_DATA as r on e.RELIGION_ID=r.ID "+ 
"where STUDENT_ID=?1",nativeQuery=true) 
関連する問題