我想在实体类上定义两个@NamedNativequery。绑定(bind)定义 eclipse 时会出现错误。



从那个错误,我知道我们不能定义两个定义两个实体类的@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 层使用 spring 存储库来调用与此查询绑定(bind)的方法
  public interface SomeInterface extends JpaRepository<ABC, Long> {


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


   }

senario 是我想运行第一个 native sql(运行良好)查询,然后运行第二个 native sql 查询(也想从同一个运行它)。如何解决这个问题或可能的解决方案是什么。

如果这样我无法运行两个 native sql 查询,那么还有其他方法可以实现这一点。

最佳答案

您可以像这样定义多个命名查询

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

然后在事务下的业务层就可以依次调用这两个查询,

如果它是两个实体之间的简单连接,并且选择和显示更好地与连接一起使用。永远记住在表中有这些列索引;)

关于spring - 在同一个实体类上运行两个 @NamedNativeQuery 查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38703557/

10-11 03:29
查看更多