3

我想在實體類上定義兩個@NamedNativequery。當綁定定義日食給出了一個錯誤。在同一個實體上運行兩個@NamedNativeQuery查詢類

非重複類型@NamedNativeQuery的重複註釋。只有 標註@Repeatable的註釋類型可以在一個 目標中多次使用。

從這個錯誤,我知道我們能不能定義兩個定義實體類的兩個@NamedNativeQuery像

@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 { 

     } 

我使用的彈簧庫在DAO層被稱爲與此查詢

綁定方法
public interface SomeInterface extends JpaRepository<ABC, Long> { 


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


    } 

senario是我想運行第一本機sql(運行正常)查詢,然後運行第二本機sql查詢(想要從同一個運行此也)。如何解決這個問題或者可能的解決方案是什麼。

如果這樣我不能運行兩個原生的SQL查詢,那麼是否有任何其他來實現這一點。

回答

4

你可以這樣定義

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

多個命名查詢然後在交易下的業務層,你可以調用這兩個查詢此起彼伏,

如果它是一個簡單的兩個實體之間加入選擇並更好地顯示與連接的一起。請務必記得在表中列出這些列索引;)

相關問題