Я использую собственный запрос в своем хранилище. Я хочу вставить данные объекта, но запрос не понимает поля объекта. Как решить эту проблему, я не хочу иметь метод с большим количеством параметров.
Мой класс:
public class StudentDTO {
private long numberzachetka;
private String fio;
private Date entrydate;
private int course;
private int numbergroup;
private long specialty;
private long faculty;
//getters, setters..}
Собственный запрос:
@Query(value ="insert into student(numberzachetka,fiostudent,entrydate,course,numbergroup,specialtykey,facultynumber)" +
" values" +
" (:student.numberzachetka,:student.fio,:student.entrydate,:student.course,:student.numbergroup,:student.specialty,:student.faculty)", nativeQuery = true)
void addNewStudent(@Param("student") StudentDTO studentDTO);
Студенческое юридическое лицо:
@Entity
@Table(name="student")
public class Student {
@Id
@Column(name="numberzachetka", nullable = false)
private long numberzachetka;
@Column(name="fiostudent", nullable = false, length = 100)
private String fio;
@Temporal(TemporalType.DATE)
@Column(name = "entrydate", nullable = false)
private Date entrydate;
@Column(name="course", nullable = false)
private int course;
@Column(name="numbergroup", nullable = false)
private int numbergroup;
@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "specialtykey", nullable = false)
private Specialty specialty;
@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "facultynumber", nullable = false)
private Faculty faculty;
@OneToMany(fetch = FetchType.EAGER, mappedBy = "student")
private Set<Performance> performances;