【发布时间】:2019-08-29 08:40:21
【问题描述】:
这是我的数据库结构:
details
id, information_id
information
id, name
这是我的信息实体:
@Entity
@Table(name = "information")
data class Information(
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
val id: Long? = 0,
val name: String,
@OneToOne(cascade = arrayOf(CascadeType.ALL), mappedBy = "information")
val details: Detials? = null
)
这里是详情:
@Entity
@Table(name = "details")
data class Details(
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
val id: Long? = null,
val additionalData: String,
@OneToOne
@JoinColumn(name = "information_id", referencedColumnName = "id")
var information: Information? = null
)
当我保存新创建的 Information 时,我想将该实体的 id 保存在 details.information_id - 它现在不工作并且 details.information_id 为空。
我是否缺少一些额外的注释参数?还是我的关系不正常了? 我可以先保存 Information,然后获取它的 id,然后对 Details 进行更新,但这不是我想要的。
编辑: 我这样创建我的信息:
val information = Information(
name = "XXXX",
details = Details(additionalData = "YYYY)
)
然后
dao.save(information)
【问题讨论】:
标签: hibernate jpa kotlin spring-data-jpa