Я работаю над интерфейсом для выполнения операций CRUD с использованием JPA, и у меня в голове возник следующий вопрос.
Если я использую persist
для моего метода создания, тогда я могу поймать EntityExistsException
, если метод вызывается с объектом, идентификатор которого уже есть в базе данных.
В методе обновления я буду использовать merge
для сохранения изменений. Чтобы не создавать что-то, что не существует, я сначала подумал о том, чтобы найти его и вызвать исключение, если оно не найдено в базе данных.
Теперь я просто думаю, что это может быть излишним, и почему бы просто не позволить merge
создать его, если он не существует, и обновить его, если он существует? Но тогда зачем мне тогда метод create?
Так что вы думаете? Рекомендуется ли иметь метод create, который создает и генерирует исключение только при попытке создать что-то уже в базе данных, и иметь метод update, который позволяет обновлять только то, что уже существует и поэтому никогда не создает?