在同一个实体上运行两个@NamedNativeQuery查询类
问题描述:
我想在实体类上定义两个@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查询,那么是否有任何其他来实现这一点。
答
你可以这样定义
@NamedNativeQueries({
@NamedNativeQuery(name = "ABC.getSomeMethod1"
query = "some_query",resultSetMapping ="abcDTO"
),
@NamedNativeQuery(name = "some_name"
query = "some_query",resultSetMapping ="some_dto"
)
})
多个命名查询然后在交易下的业务层,你可以调用这两个查询此起彼伏,
如果它是一个简单的两个实体之间加入选择并更好地显示与连接的一起。请务必记得在表中列出这些列索引;)