我需要在交易中同时保存2个模型,但是...
org.postgresql.util.PSQLException: ERROR: null value in column "book_id" violates not-null constraint
我不明白怎么了。我的模特:
a)章节
@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
}
b)本书
@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
}
如何解决?我是春季的新手,这对我来说是完全不可理解的。