Tag: 冬眠

KOTLIN orphanRemoval无效

是否有任何人删除子记录的类似问题,但没有使用orphanRemoval注释? 以下是我在Model Class构造函数中的代码示例: @OneToMany(orphanRemoval = true, cascade = arrayOf(CascadeType.ALL)) @JoinColumn(name = "categoryId", nullable = false) var books: List<BOOK> = emptyList() 使用cascade = arrayOf(CascadeType.ALL)的CRUD是完美的工作,但是当在“ONE-TO-MANY”注释中添加orphanRemoval = true时,它不能再工作,抛出如下异常: org.hibernate.HibernateException:具有cascade =“all-delete-orphan”的集合不再由拥有的实体实例引用: 添加orphanRemoval从数据库中永久删除子记录的目的。

休眠与Kotlin:@ManyToOne(fetch = FetchType.LAZY)

我正在使用Hibernate与Kotlin和我在@ManyToOne关系上的@ManyToOne问题。 考虑以下几点: @ManyToOne(fetch = FetchType.LAZY) open var event: Event? 问题是,当使用FetchType.LAZY时,获取的Event将是Event_$$_jvst_…类上的Event_$$_jvst_… JavaassistLazyInitializer 但事件永远不会被初始化,一切都将是空的或空的。 一旦FetchType.LAZY被删除,一切工作正常。 这在Java中没有发生。 我试图在var上添加open ,以便Event可以正确代理。 没有效果。 所有的@Entity类当然也是open 。 如果open关键字被删除,将不会创建代理,所以没有懒惰。 我的猜测是,Hibernate不能轻易地代理这些默认的kotlin获得者。 有没有办法解决它?

Kotlin中的val可插入类

我正在研究Gradle-Kotlin-Hibernate项目。 我想保留一些不可改变的类,这在Kotlin中特别容易。 这对@Entity来说很好 @Entity(name = "SOMETHING") class MeetingKeychain( val immutableProp: String ) { // ID and others } 感谢kotlin-jpa插件的使用。 但是相同的插件不能用于@Embeddable 。 @Embeddable class MeetingKeychain( val immutableProp: String ) { // ID and others } 引发以下异常: Caused by: org.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.component.PojoComponentTuplizer] at org.hibernate.tuple.component.ComponentTuplizerFactory.constructTuplizer(ComponentTuplizerFactory.java:98) at org.hibernate.tuple.component.ComponentTuplizerFactory.constructDefaultTuplizer(ComponentTuplizerFactory.java:119) at org.hibernate.tuple.component.ComponentMetamodel.<init>(ComponentMetamodel.java:64) at org.hibernate.mapping.Component.getType(Component.java:169) at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:398) at […]