Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa Micronaut数据:创建和保存新实体_Jpa_Kotlin_Micronaut - Fatal编程技术网

Jpa Micronaut数据:创建和保存新实体

Jpa Micronaut数据:创建和保存新实体,jpa,kotlin,micronaut,Jpa,Kotlin,Micronaut,我希望在应用程序启动期间保留新实体,如下所示: class Application( private val bookRepository: BookRepository, ) { @EventListener fun init(event: StartupEvent) { val encyclopedia = BookEntity(0, "The sublime source of knowledge") val notebook = B

我希望在应用程序启动期间保留新实体,如下所示:

class Application(
    private val bookRepository: BookRepository,
) {
    @EventListener
    fun init(event: StartupEvent) {
        val encyclopedia = BookEntity(0, "The sublime source of knowledge")
        val notebook = BookEntity(0, "Release your creativity!")
        bookRepository.saveAll(listOf(encyclopedia, notebook))
    }
}

根据这一点,应该可以工作,但由于某种原因,我得到了
javax.persistence.PersistenceException:org.hibernate.PersistentObjectException:Distached entity传递给persistent
exception。

您将ID
0
传递给
BookEntity
构造函数,以指示它是一个新实体。它与JDBC一起工作,但是当您使用JPA时,
0
必须与
null
相关联。以下工作如预期:

class Application(
    private val bookRepository: BookRepository,
) {
    @EventListener
    fun init(event: StartupEvent) {
        val encyclopedia = BookEntity(null, "The sublime source of knowledge")
        val notebook = BookEntity(null, "Release your creativity!")
        bookRepository.saveAll(listOf(encyclopedia, notebook))
    }
}

您的
BookEntity
构造函数的第一个参数是什么?是不是
id
?是的,
BookEntity
构造函数的第一个参数是id。我不知道为什么要这样做。为什么不在
BookEntity
中有一个构造函数,它只接受
字符串
参数,而将
id
完全排除在构造函数之外呢?