kotlin - Kotlin SpringMVC - JpaRepository 生成无效更新查询
问题描述
我对 Spring MVC 很陌生,我在让一个简单的实体更新工作时遇到了问题。
我的数据类看起来像这样......
@Entity
@Table(uniqueConstraints=[UniqueConstraint(columnNames=["name_search"])])
data class ArticleType(
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
val id: Long? = null,
val name : String = "",
val order: Int? = null,
var name_search : String = ""
)
存储库看起来像这样......
interface ArticleTypeRepository : JpaRepository<ArticleType, Long> {
fun findFirstById(id: Long) : ArticleType?
fun findAllByOrderByOrderAsc(): List<ArticleType>
fun findByName(name: String): ArticleType?
}
我正在尝试像这样更新 name_search 列...
val article_type:ArticleType? = articleTypeRepository.findFirstById(1234)
if (article_type !== null) {
article_type.name_search = "abc"
articleTypeRepository.save(article_type)
}
这会导致以下错误...
java.sql.SQLSyntaxErrorException:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'order=99 where id=1234' 附近使用正确的语法
我假设这意味着绑定无法正常工作,并且缺少“name_search”绑定,或者缺少引号或其他内容。我已经打开了日志记录,我可以看到以下内容......
org.hibernate.SQL : 更新 article_type 设置 name=?, name_search=?, order=? 哪里id=?
然后它列出了绑定参数“ohtype.descriptor.sql.BasicBinder”,这些参数看起来都是正确的。
我不确定出了什么问题,或者我需要从哪里开始尝试修复它。
这是我继承的遗留系统,我并不完全理解它。如果我需要在这里提供一些额外的信息,请告诉我。
解决方案
推荐阅读
- mysql - MySQL 错误 1215 无法添加外键约束
- python - 如何在pytube3中使用进度条
- java - 日志文件中没有打印日志,但它正在打印在 cosole [log4j]
- python - Python 3 已安装,但 python -V 返回 python 2
- javascript - 无法使用 AWS Lambda 服务从 AWS cognito 获取用户信息
- go - 致命错误:所有 goroutine 都处于休眠状态 - 死锁!goroutine 1 [semacquire]:
- excel - 从字符串公式返回文件夹名称
- node.js - 如何在 CentOS 中安装 nodejs
- html - 使用ngFor条件时如何不在dom中显示
- string - Lua 字符串匹配/查找