3

エンティティクラスに2つの@NamedNativequeryを定義します。日食を定義しようとするとエラーになります。同じエンティティクラスに対して2つの@NamedNativeQueryクエリを実行します。

繰り返し不可能な型@NamedNativeQueryの重複した注釈。 @Repeatableとマークされた 注釈タイプのみが、 ターゲットで複数回使用できます。そのエラーから

、私はこのクエリ

と結合するメソッドを呼び出したために、DAO層で春のリポジトリを使用しています私たちは、2つの

@Entity 
    @Table(name = "abc") 
    @NamedNativeQuery(name = "ABC.getSomeMethod1" query = "some_query",resultSetMapping ="abcDTO")//1st name query 
    // @NamedNativeQuery(name = "some_name" query = "some_query",resultSetMapping ="some_dto")//try to define second query , but gives error 
    public class ABC { 

     } 

のようなエンティティクラスの2 @NamedNativeQueryを定義定義することはできません知っています

public interface SomeInterface extends JpaRepository<ABC, Long> { 


    @Query(nativeQuery =true) 
    List<ABCDTO> getSomeMethod1(@Param("someParam1") long someParam1, @Param("someParam2") String someParam2); 


    } 

senarioは私が(正常に動作)第一ネイティブSQLクエリを実行し、(同じからも、これを実行したい)第二ネイティブSQLクエリを実行したいということです。これを解決する方法または可能な解決策は何ですか。

私はこの2つのネイティブのSQLクエリを実行することはできませんこのような場合は、これを実現するために他にあります。単純な2つのエンティティとの間の結合その場合

答えて

4

あなたはその後、トランザクションの下にビジネス層では、これらの2つのクエリを次々に呼び出すことができます。この

@NamedNativeQueries({ 
    @NamedNativeQuery(name = "ABC.getSomeMethod1" 
         query = "some_query",resultSetMapping ="abcDTO" 
    ), 
    @NamedNativeQuery(name = "some_name" 
    query = "some_query",resultSetMapping ="some_dto" 
    ) 
}) 

のように複数の名前付きクエリを定義することができ、

選択して表示する方が良いです。これらの列をテーブルにインデックスすることを常に忘れないでください;

関連する問題