如何在Spring JPA本机查询中替换SQL查询条件

时间:2019-05-16 20:54:01

标签: spring jpa native

我有一个spring jpa本机查询(实际查询连接了多个表),如下所示。

@Query(nativeQuery = true, value="
select id, name from TABLE where id NOT IN ('2', '3')")
List<Object> getValueForNOTIN()

@Query(nativeQuery = true, value="
select id, name from TABLE where id IN ('4', '5')")
List<Object> getValueForIN()

我想使用一种方法,而不是2种方法,用此“ replaceClause”值替换NOT IN和IN。

List<Object> getValueForBoth(@Param("replaceClause)" String replaceClause)

启动服务器时出现错误。我不能这样吗?

1 个答案:

答案 0 :(得分:0)

您可以使用

之类的静态字符串

私有字符串SELECT_NOT_IN_QUERY =“从表中选择ID,名称 id NOT IN('id1','id2')”

私有字符串SELECT_IN_QUERY =“从表中选择ID,名称 id IN('id1','id2')所在的位置”

然后查找id1和id2并替换为其值。相应地使用正确的静态字符串。