3
Spring起動アプリケーションでSpring-dat-jpaを使用していて、リポジトリ内でネイティブクエリを実行しようとしています。スキーマ名にテーブル名を追加するとうまく動作しますが、独立して動作せず、定義したEntityクラスの場合と同様にapplication.propertiesファイルからスキーマ名を選択しません。Springデータjpaリポジトリ内のネイティブクエリのデフォルトスキーマ
私は、スキーマエンティティクラスと名前付きクエリでうまく動作します。私は@queryで任意のネイティブクエリを記述する場合しかし、それはスキーマ名文句を開始:
以下spring.jpa.properties.hibernate.default_schema=NPS_WO
は私のクエリです:私の実際のシナリオでは
@Repository
public interface TestRepository extends JpaRepository<TypeRef,Long> {
@Query(value="SELECT t.* from Type_Ref t")
public List<Object[]> findAllTypes();
}
このクエリは、複雑なネイティブクエリによって置き換えられます。
本当にありがとうございます。
「SELECT t。* from Type_Ref t」が実際に有効なクエリであることを確認してください。代わりに 'SELECT * from Type_Ref t'でなければならないと思います。 –
私はクエリを修正しましたが、依然としてスキーマ名 –
を求めています。このクエリは必要ありません。 JpaRepositoryは(CrudRepositoryから)このクエリで期待どおりに動作するfindAllメソッドを継承しています。 - > TestRepository.findAll()。 http://docs.spring.io/spring-data/jpa/docs/current/api/org/springframework/data/jpa/repository/JpaRepository.html#findAll-- – Pau