【发布时间】:2021-08-27 22:50:44
【问题描述】:
我有数据类
data class Author(
val id: String,
val name: String,
val books: MutableList<Book> = mutableListOf()
) {}
我使用 jooq 写了请求
val resultSet = dsl.select(author.ID, author.NAME,
field(select(jsonArrayAgg(jsonObject(book.ID, book.PRICE)))
.from(books)
.where(book.AUTHOR_ID.eq(author.ID))
).`as`("books"))
.from(authors)
.fetchInto(Author::class.java)
但如果作者没有书,我会得到一个例外。这是合乎逻辑的,因为数据类 Author 中的外业簿不可为空。我试图将伴随对象添加到数据类
companion object {
operator fun invoke(
id: String,
name: String,
books: MutableList<Book>? = null
) = Author(id, name, books ?: mutableListOf())
}
但它不起作用,jooq 仍然尝试使用默认构造函数,我得到一个异常。有没有办法在不使数据类 Author 中的外业手册可以为空的情况下修复它?
【问题讨论】:
标签: kotlin jooq data-class