【发布时间】:2020-09-26 03:38:39
【问题描述】:
在我的 Spring JPA 项目中,我有一个这样的 repo 文件:
@Repository
public interface StudentRepository extends JpaRepository<Student, Integer>{
@Query(value = "select * from students", nativeQuery = true)
public List<Student> findStudents(
@Param("keyword") String keyword
);
}
有了这个,我仍然可以复制粘贴 SQL 并在我的数据库软件中运行。
但是当涉及到大型查询时:
@Query(value = "SELECT\n" +
"*\n" +
"FROM\n" +
"students\n" +
"WHERE\n" +
"(\n" +
"`id` LIKE CONCAT('%', :keyword, '%') OR\n" +
"`name` LIKE CONCAT('%', :keyword, '%') OR\n" +
"`desc` LIKE CONCAT('%', :keyword, '%') OR\n" +
"`sex` LIKE CONCAT('%', :keyword, '%')\n" +
")", nativeQuery = true)
public List<Student> findStudents(
@Param("keyword") String keyword
);
我不能直接复制粘贴并在DB软件中运行,我必须删除“+”“\n”字符。 我试过 Java 的 """SQL_QUERY_STRING""" 但它不允许。
有没有其他方法可以解决这个问题?
更新
我尝试了三重双引号,但它给出了:
字符串文字没有被双引号正确关闭
【问题讨论】:
-
如果您只需要SQL进行调试,您可以从那里打印SQL in log,您可以复制没有“+”符号的SQL。检查这篇文章stackoverflow.com/questions/30118683/…
标签: java spring spring-boot java-8 jpql