CRUD и объединить / сохранить - PullRequest
2 голосов
/ 07 декабря 2010

Я работаю над интерфейсом для выполнения операций CRUD с использованием JPA, и у меня в голове возник следующий вопрос.

Если я использую persist для моего метода создания, тогда я могу поймать EntityExistsException, если метод вызывается с объектом, идентификатор которого уже есть в базе данных.

В методе обновления я буду использовать merge для сохранения изменений. Чтобы не создавать что-то, что не существует, я сначала подумал о том, чтобы найти его и вызвать исключение, если оно не найдено в базе данных.

Теперь я просто думаю, что это может быть излишним, и почему бы просто не позволить merge создать его, если он не существует, и обновить его, если он существует? Но тогда зачем мне тогда метод create?

Так что вы думаете? Рекомендуется ли иметь метод create, который создает и генерирует исключение только при попытке создать что-то уже в базе данных, и иметь метод update, который позволяет обновлять только то, что уже существует и поэтому никогда не создает?

1 Ответ

1 голос
/ 07 декабря 2010

Я бы использовал просто слияние. Если вы понимаете (и документируете в своем коде), что он делает, это хороший вариант. Я использовал его в нескольких проектах без проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...