gpt4 book ai didi

spring - 对同一实体类运行两个 @NamedNativeQuery 查询

转载 作者:行者123 更新时间:2023-12-05 00:55:09 26 4
gpt4 key购买 nike

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

Duplicate annotation of non-repeatable type @NamedNativeQuery. Only annotation types marked @Repeatable can be used multiple times at one target.



从那个错误中,我知道我们不能定义两个定义实体类的两个@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);


}

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

如果这种方式我无法运行两个 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com