0

Please note that I have a look at How do I update an entity using spring-data-jpa?, but there is not a proper answer related to my question.

I am new in Spring Data JPA and try to create a single proper method for both create and update operation. I am trying the following approach:

@Transactional
    public CommandDTO createOrUpdate(EmployeeRequest request) {

        Employee employee = employeeRepository
                .findById(request.getId());
                .orElse(new Employee());
                
        employee.setName(request.getName());
        // set other properties

        final Employee saved = employeeRepository.save(employee);
        return CommandDTO.builder().uuid((saved.getUuid())).build();
    }

In this approach, I wanted to first try to find the record by Id and if not found create a new instance of it (for this reason I do not use Optional<Employee> as it always returns a value). After that, I am looking for a method that look at the Primary Key parameter and if it is present, updates the record. If not create the a new record with the given parameters.

So, how should I complete the method? Or should I follow another approach in order to apply one of the best practices for Spring Data JPA?

0 Answers0