Отправить запрос на объект Spring с внешним ключомJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Отправить запрос на объект Spring с внешним ключом

Сообщение Anonymous »


У меня есть две таблицы: Сотрудник и возмещение с отношением OneToMany.
При передаче почтового запроса на возмещение возникает ошибка "Столбец 'emp_id' не может быть нулевым" (emp_id — внешний ключ)

Мои сущности:
Сотрудник:

@Entity @Table(name = "сотрудник") общественный класс Сотрудник { @Идентификатор @GeneratedValue (стратегия = GenerationType.IDENTITY) @Column(name = "emp_id") частный длинный emId; @Column(name = «имя», nullable = false) частное имя строки; @Column(name = «электронная почта», значение null = false, unique = true) личная строка электронной почты; @Column(name = «пароль», nullable = false) личный строковый пароль; @Column(name = «менеджер», nullable = false) @Value("ложь") частный логический менеджер; @OneToMany(mappedBy = "сотрудник", каскад = КаскадТип.ВСЕ, выборка = FetchType.EAGER, сиротаRemoval = правда ) @JsonManagedReference частные возмещения Set = new HashSet(); общественный длинный getEmpId() { вернуть emId; } общественный недействительный setEmpId (длинный empId) { this.empId = empId; } // (...) другие геттеры и сеттеры public Set getReimbursements() { возврат возмещения; } public void setReimbursement(Set возмещения) { this.reimbursements = возмещение; } } Возмещение:

@AllArgsConstructor @NoArgsConstructor @Сущность @Стол( name = "возмещения" ) Возмещение общественного класса { @Идентификатор @GeneratedValue(стратегия = GenerationType.IDENTITY) частный длинный идентификатор; @Column(name = «описание», nullable = false) описание частной строки; @Column(name = «сумма», nullable = false) частная двойная сумма; @Column (имя = «статус», значение null = false) @Value("ложь") частный логический статус; //возместили ли расходы @ManyToOne @JoinColumn(name = "emp_id", nullable = false, обновляемый = false) @JsonBackReference частный сотрудник; общественный длинный getId() { вернуть идентификатор; } общественный недействительный setId (длинный идентификатор) { this.id = идентификатор; } //(...) другие геттеры и сеттеры публичный сотрудник getEmployee() { вернуть сотрудника; } public void setEmployee (Сотрудник) { this.employee = сотрудник; } } Контроллер поста:

@PostMapping public ResponseEntity createReimbursement(@RequestBody Возмещение возмещения) { данные var = возмещениеService.createReimbursement(возмещение); вернуть новый ResponseEntity(данные, HttpStatus.CREATED); } Сервис:

@Override общественное возмещение createReimbursement(возмещение возмещения) { вернуть возмещениеRepository.save(возмещение); } Я попробовал передать этот JSON как запрос POST (сотрудник с идентификатором 1 уже существует в таблице сотрудников)

{ "сотрудник": { "emp_id": "1" }, "описание": "пример", "сумма": "123", "статус": "ложь" } Я новичок в Spring Boot. Кто-нибудь знает, что я сделал не так?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»