我有以下Kotlin代码:
val book = bookRepository
.findById(1)
.orElseThrow { DoesNotExistException("Book with ID 1 does not exist") }
bookRepository.save(book)我希望这段代码只会再次保存同一个实体。但是,它实际上通过复制所有字段并更改ID来生成一个新实体。
实体本身就在这里:
@Entity
data class Book(@Id
@GeneratedValue
var id: Long?,
val status: Book.Status
)我在JDBC中使用micronaut-data (以前命名为Micronaut Predator),我不使用JPA。
如何在不创建新实体的情况下更新现有实体?
发布于 2019-08-05 18:20:36
这就是它的设计工作方式。在文档:https://micronaut-projects.github.io/micronaut-data/snapshot/guide/#jdbcQuickStart中,向下滚动到“更新实例(更新)”部分:
使用Micronaut数据JDBC,您必须手动实现update方法,因为JDBC实现不包括任何脏检查或持久性会话概念。因此,您必须为存储库中的更新定义显式更新方法。
https://stackoverflow.com/questions/57362875
复制相似问题