首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Micronaut数据jdbc:保存现有实体将创建一个新实体,而不是更新现有实体。

Micronaut数据jdbc:保存现有实体将创建一个新实体,而不是更新现有实体。
EN

Stack Overflow用户
提问于 2019-08-05 16:49:02
回答 1查看 1.3K关注 0票数 3

我有以下Kotlin代码:

代码语言:javascript
复制
val book = bookRepository
        .findById(1)
        .orElseThrow { DoesNotExistException("Book with ID 1 does not exist") }

bookRepository.save(book)

我希望这段代码只会再次保存同一个实体。但是,它实际上通过复制所有字段并更改ID来生成一个新实体。

实体本身就在这里:

代码语言:javascript
复制
@Entity
data class Book(@Id
                @GeneratedValue
                var id: Long?,
                val status: Book.Status
)

我在JDBC中使用micronaut-data (以前命名为Micronaut Predator),我不使用JPA。

如何在不创建新实体的情况下更新现有实体?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-05 18:20:36

这就是它的设计工作方式。在文档:https://micronaut-projects.github.io/micronaut-data/snapshot/guide/#jdbcQuickStart中,向下滚动到“更新实例(更新)”部分:

使用Micronaut数据JDBC,您必须手动实现update方法,因为JDBC实现不包括任何脏检查或持久性会话概念。因此,您必须为存储库中的更新定义显式更新方法。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57362875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档