用于NativeQuery的Spring JPA长SQL字符串

问题描述 投票:2回答:1

在我的Spring JPA项目中,我有一个这样的回购文件:

@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”“”,但它不允许这样做。

是否有其他替代方法?

UPDATE

我尝试了三重双引号,但它给出了:字符串文字没有被双引号正确关闭enter image description here

spring spring-boot jpa spring-data-jpa named-query
1个回答
1
投票
© www.soinside.com 2019 - 2024. All rights reserved.