database - CRUD 和合并/持久化

标签 database orm jpa

我正在开发一个使用 JPA 进行 CRUD 操作的界面,我的脑海中形成了以下问题。

如果我将 persist 用于我的创建方法,然后我可以捕获 EntityExistsException,如果该方法是使用数据库中已有 ID 的对象调用的。

在更新方法中,我将使用 merge 来保存更改。为了不创建不存在的东西,我考虑先查找它,如果在数据库中找不到则抛出异常。

现在我只是觉得这可能有点矫枉过正,为什么不让 merge 如果不存在就创建它,如果存在就更新它?但是那我需要创建方法做什么?

那你怎么看?最好的做法是拥有一个创建方法,它只在尝试创建数据库中已有的东西时创建并抛出异常,并且拥有一个更新方法,只允许你更新已经存在的东西,因此永远不会创建?

最佳答案

我只会使用合并。如果您了解(并在您的代码中记录)它在做什么,那么它是一个不错的选择。我已经在几个项目中使用它,没有任何问题。

关于database - CRUD 和合并/持久化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4375453/

相关文章:

mysql - 使用 Propel ORM 左连接选择

java - 测试 Pageable 的意义何在?

mysql - 如何使用MySQL中的列值为表中的每条记录生成多条记录?

python - 如何在 SQLAlchemy (ORM) 中为 3 个表建立多对多关系模型?

java - SQL Server : Data more fractional digits in Java

java - Hibernate 集合链接

java - JPA:列在其父级中应该是唯一的。

java - 数据库同步技术JPA/GUI

php - WordPress 从主机迁移到本地服务器

php - codeigniter数据库查询/mysql