Мне нужно сохранить 2 модели одновременно в транзакции, но ...
org.postgresql.util.PSQLException: ERROR: null value in column "book_id" violates not-null constraint
Я не понимаю, что происходит не так. Мои модели:
а) Глава
@Entity
class Chapter() : AuditModel() {
constructor(number: Int, title: String) : this() {
this.number = number
this.title = title
}
@Column(nullable = false)
var number: Int? = null
@Column(nullable = false)
lateinit var title: String
@Column(nullable = false)
var progress: Int = 0
@ManyToOne
@JoinColumn(name = "book_id")
lateinit var book: Book
}
б) Книга
@Entity
class Book() : AuditModel() {
constructor(title: String, author: String) : this() {
this.title = title
this.author = author
}
@Column(nullable = false)
lateinit var title: String
@Column(nullable = false)
lateinit var author: String
@OneToMany(mappedBy = "book", cascade = [CascadeType.PERSIST])
val chapters: MutableSet<Chapter> = HashSet()
}
И функция, в которой я сохраняю модели:
@Transactional
fun createBook(title: String, author: String): Boolean {
val book = Book(title, author)
val chapter = Chapter(1, "Example - 1")
book.chapters.add(chapter)
return bookRepository.save(book) != null
}
Как это исправить? Я новичок весной, и это совершенно непонятно для меня.