在我的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并在我的DB软件中运行。
但是当遇到这样的大型查询时:
@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”“”但它不允许这样做。
字符串文字没有正确地用双引号封闭
JEP355引入了多行字符串。您可以利用它们简单地复制-粘贴SQL:
@Query(value =
"""
select *
from students
...
""", nativeQuery = true)
注意,它是作为预览版在Java13中引入的。因此您需要至少升级到Java13并启用预览功能来利用它。
如果不是,可以通过将换行符替换为空格来提高可读性:
@Query(value = "SELECT " +
"FROM " +
"students " +
...
问题内容: 我在SQL数据库中有一个字符串,表示一个URL。有些网址很短,有些很长。我真的不知道这是我可能遇到的最长的URL,所以为了安全起见,我会采用较大的值,例如256或512。 当我定义最大字符串长度时(例如,使用SQLAlchemy): 即使实际的字符串较短,这是否也会占用每一行的空间(存储空间)? 我假设这与实现细节有关。我正在使用postgreSQL,但对sqlite和mysql也很感
假设我有一个有2列的表:name和number。Name是一个字符串,可以有一个或多个单词,我想要一个新的查询选择名称编号,但在Name列,它只有最长的词,原来的表。 SQL中是否有一个函数只从字符串中提取最长的单词?
问题内容: 我正在尝试在列数据类型为的表中插入数据。理想情况下,它应该存储8000个以上的字符,但就我而言,它将其减少到8000个字符。 我正在过程中的运行时进行插入查询。下面是该程序正在执行的示例查询。 A,B,C等是示例数据,实际数据将在运行时被标识,实际内容跨越8000个字符。同样,用于存储值的变量也定义为’ ‘ 但是,当我尝试以下查询时,它的确在表中插入了超过8000个字符 我想在尝试用“
大家好。我必须制作这个程序,输入一个文本,输出有多少个单词,以及有多少个长度为1、2等的单词。我已经完成了计算单词数的程序,但对于第二部分我不知道。非常感谢任何能帮忙的人。
可能已经有某种apache或guava实用程序类满足我的要求: 我想始终创建相同长度的字符串。缺少的字符应使用固定字符向左或向右填充。像这样: 你明白了,可能它已经在那里了,但是我错过了找到它的正确关键字。
我使用的是Spring Data JPA,我的列定义是 在有效负载中,我使用了具有字符计数的描述。但它仍然在扔 错误:值太长,无法更改类型字符(255)` 仅使用长度为1990的文本,即使对于文本类型也会出现相同的错误