У меня есть следующие сущности книги и автора с отношением oneToMany от автора к книге
@Entity
@Table(name = "Author")
public class Author {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
@OneToMany(mappedBy = "author", cascade = CascadeType.ALL)
private List<Book> bookList;
gettters/setters
}
и
@Entity
@Table(name = "Book")
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String title;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "authorId")
private Author author;
getters/setters
}
мой контроллер
@PostMapping("/author")
public ResponseEntity<?> save(@RequestBody Author author) {
long id = bookService.save(author);
return ResponseEntity.ok().body("New Book has been saved with ID:" +id);
}
дао класс
@Override
public long save(Author author) {
sessionFactory.getCurrentSession().save(author);
return author.getId();
}
Я вызываю вышеуказанный веб-сервис с использованием следующего ввода: -
{
"name":"Herbert shilde",
"bookList":[{
"title":"My Book"
}]
}
В моей базе данных таблица авторов вставляет правильные данные, но таблица книг не вставляет чужиеключ соответствующей записи.Как вы можете видеть на изображении ниже, что authorId в таблице книг - ноль.Я использую hibernate 5.
Авторский стол
Книжный стол
Любая помощь будет оценена