Я совсем новичок в 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, на предмет правильного синтаксиса для использования рядом с 'order = 99, где id = 1234' в строке 1
Я предполагаю, что это означает, что привязка работает неправильно и отсутствует привязка "name_search" или отсутствуют кавычки или что-то в этом роде. Я включил ведение журнала и вижу следующее ...
org.hibernate. SQL: обновить имя_сталии set name = ?, name_search = ?, order =? где id =?
Затем в нем перечислены параметры привязки "ohtype.descriptor. sql .BasicBinder", которые кажутся правильными.
Я не уверен, что происходит не так, или где мне нужно начать пытаться это исправить.
Это устаревшая система, которую я унаследовал, и я не до конца ее понимаю. Если мне нужна дополнительная информация, пожалуйста, сообщите мне.