Spring data jpa native запрос. Вставить объект - PullRequest
0 голосов
/ 14 марта 2020

Я использую собственный запрос в своем хранилище. Я хочу вставить данные объекта, но запрос не понимает поля объекта. Как решить эту проблему, я не хочу иметь метод с большим количеством параметров.

Мой класс:

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;
...