Database CRUD和合并/持久化

Database CRUD和合并/持久化,database,orm,jpa,Database,Orm,Jpa,我正在开发一个使用JPA进行CRUD操作的界面,下面的问题在我脑海中形成 如果我对create方法使用persist,那么如果使用数据库中已有ID的对象调用该方法,我就可以捕获EntityExistsException 在更新方法中,我将使用merge保存更改。为了不创建不存在的东西,我考虑先查找它,如果在数据库中找不到它,则抛出异常 现在我在想,这可能有点过头了,为什么不让merge创建它(如果不存在)并更新它(如果存在)?但是我需要create方法做什么呢 那你觉得呢?最好的做法是使用cre

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

如果我对create方法使用
persist
,那么如果使用数据库中已有ID的对象调用该方法,我就可以捕获
EntityExistsException

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

现在我在想,这可能有点过头了,为什么不让
merge
创建它(如果不存在)并更新它(如果存在)?但是我需要create方法做什么呢


那你觉得呢?最好的做法是使用create方法,在尝试创建数据库中已有的内容时只创建并引发异常,而使用update方法,只允许更新已经存在的内容,因此永远不会创建这些内容?

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

嗯,我也选择了这个解决方案。这是我最喜欢的一个,另一个有点理论化。