我正在开发一个使用JPA进行CRUD操作的界面,并在我脑海中形成了以下问题。
如果我使用persist
作为我的create方法,那么如果使用数据库中已有ID的对象调用该方法,则可以捕获EntityExistsException
。
在更新方法中,我将使用merge
来保存更改。为了不创建不存在的东西,我首先考虑查找它,如果在数据库中找不到则抛出异常。
现在我只是认为这可能有点过分,为什么不让merge
创建它,如果不存在的话,如果它存在则更新它?但那么我需要什么创建方法?
那你觉得怎么样?最佳做法是创建一个只在创建数据库中已创建的东西时创建并抛出异常的create方法,并且有一个更新方法只允许您更新已经存在但永远不会创建的东西吗?
答案 0 :(得分:1)
我只使用合并。如果你理解(并在你的代码中记录)它正在做什么,这是一个很好的选择。我已经在几个项目中使用它而没有任何问题。