所以,我知道这个问题似乎有点奇怪,可能只是要澄清一下:
@Entity
@Table(name = "OUTTER")
class Outter(){
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "outterId")
var id: Long? = null
@ElementCollection
val listOfInner = mutableListOf<Inner>()
}
@Embeddable
@Table(name = "INNER")
data class Inner(
@Id
@JoinColumn(name = "outterId")
var outter: Outter
)
不起作用,我不确定为什么。似乎遵循了我所见过的指南,所以不确定我缺少什么。
外部:
outterId | outterStuff
---------------------
1 | info
内部:
outterId | innerIndex | innerStuff
--------------------------------
1 | 0 | innerInfo
因此它是1到多个,但inner的主键是outterId,然后它使用其他键来确保它是唯一的(不是嵌入式ID tho)
答案 0 :(得分:0)
可嵌入的对象没有独立的身份。也不应该为它们定义@Table
。
@Entity
@Table(name = "OUTTER")
class Outter(){
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "outterId")
var id: Long? = null
@ElementCollection
@CollectionTable(name = "INNER", joinColumn = "outterId")
val listOfInner = mutableListOf<Inner>()
}
@Embeddable
data class Inner(
//fields as required
)