这是我的数据库结构:
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 为空。
我是否缺少其他注释参数?还是我的关系中断了? 我可以先保存信息,然后获取其ID,然后对详细信息进行更新,但这不是我想要的。
编辑: 我这样创建我的信息:
val information = Information(
name = "XXXX",
details = Details(additionalData = "YYYY)
)
然后
dao.save(information)
答案 0 :(得分:1)
您的Information.details
包含Details
对象,但是Details.information
也必须指向原始的Information
对象。