Ash*_*ari 4 spring named-query spring-data spring-data-jpa spring-repositories
我想在实体类上定义两个@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 {
}
Run Code Online (Sandbox Code Playgroud)
我在dao层使用spring存储库来调用与该查询绑定的方法
public interface SomeInterface extends JpaRepository<ABC, Long> {
@Query(nativeQuery =true)
List<ABCDTO> getSomeMethod1(@Param("someParam1") long someParam1, @Param("someParam2") String someParam2);
}
Run Code Online (Sandbox Code Playgroud)
senario是我想运行第一个本机sql(运行正常)查询,然后运行第二个本机sql查询(想要从同样运行此)。如何解决此问题或可能的解决方案。
如果这样我不能运行两个本机sql查询,那么还有其他方法可以实现这一点。
您可以像这样定义多个命名查询
@NamedNativeQueries({
@NamedNativeQuery(name = "ABC.getSomeMethod1"
query = "some_query",resultSetMapping ="abcDTO"
),
@NamedNativeQuery(name = "some_name"
query = "some_query",resultSetMapping ="some_dto"
)
})
Run Code Online (Sandbox Code Playgroud)
然后,在交易下的业务层中,您可以依次调用这两个查询,
如果它是两个实体之间的简单联接,并且选择并显示更好,则使用联接的联接。永远记得在表中有那些列索引;)
| 归档时间: |
|
| 查看次数: |
5053 次 |
| 最近记录: |