我正在开发一个使用 JPA 进行 CRUD 操作的界面,我的脑海中形成了以下问题。
如果我将 persist
用于我的创建方法,然后我可以捕获 EntityExistsException
,如果该方法是使用数据库中已有 ID 的对象调用的。
在更新方法中,我将使用 merge
来保存更改。为了不创建不存在的东西,我考虑先查找它,如果在数据库中找不到则抛出异常。
现在我只是觉得这可能有点矫枉过正,为什么不让 merge
如果不存在就创建它,如果存在就更新它?但是那我需要创建方法做什么?
那你怎么看?最好的做法是拥有一个创建方法,它只在尝试创建数据库中已有的东西时创建并抛出异常,并且拥有一个更新方法,只允许你更新已经存在的东西,因此永远不会创建?
最佳答案
我只会使用合并。如果您了解(并在您的代码中记录)它在做什么,那么它是一个不错的选择。我已经在几个项目中使用它,没有任何问题。
关于database - CRUD 和合并/持久化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4375453/