【发布时间】:2011-05-21 12:00:18
【问题描述】:
我正在开发一个使用 JPA 进行 CRUD 操作的界面,我的脑海中形成了以下问题。
如果我将 persist 用于我的 create 方法,那么我可以捕获 EntityExistsException,如果该方法是使用数据库中已有 ID 的对象调用的。
在更新方法中,我将使用merge 保存更改。为了不创建不存在的东西,我考虑先查找它,如果在数据库中找不到它,则抛出异常。
现在我只是在想这可能有点矫枉过正,为什么不让merge 在不存在时创建它,如果存在则更新它?但是那我需要create方法做什么呢?
那你怎么看?最好的做法是让 create 方法仅在尝试创建数据库中已有的内容时创建并引发异常,并拥有一个 update 方法,只允许您更新已经存在的内容,因此永远不会创建?
【问题讨论】: