Сохранить ребенка и родителя одновременно - PullRequest
0 голосов
/ 23 марта 2019

Мне нужно сохранить 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
}

Как это исправить? Я новичок весной, и это совершенно непонятно для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...