У меня есть приложение весенней загрузки, которое связано с базой данных PostgreSQL с помощью spring-data-jpa
, вот моя сущность с почти 40 полями
Теперь для сохранения сущности в базе данных я просто использую метод studentRepository.save
studentRepository.save(new StudentEntity());
Организация DAO
@Table
@Entity
public class StudentEntity {
@Id
@Generate( using database sequenece)
private long studentId;
private String studentName;
private String dept;
private String age;
..
..
}
Репозиторий
public interface StudentRepository implements JPARepository<Long, Student> {
}
Но теперь у меня есть требование: если в таблице есть записи о студентах с name
и dept
, мне не следует вставлять новую запись, я знаю, что для этого я могу использовать PostgreSQL ON CONFLICT
с собственным запросом, но если Я использую собственный запрос, я должен указать все 40 полей в запросе и в качестве аргументов метода, который выглядит ужасно.
Есть ли способ сделать это проще?
Пример собственного запроса
@Query(value = "insert into Users (name, age, email, status) values (:name, :age, :email, :status)", nativeQuery = true)
void insertUser(@Param("name") String name, @Param("age") Integer age, @Param("status") Integer status, @Param("email") String email);