我将实体定义如下:
@Entity
data class Environment(
@EmbeddedId
var key: EnvStageId? = null,
var value: String = ""
)
@Embeddable
class EnvStageId(
@ManyToOne
var stage: Stage? = null,
var key: String = ""
) : Serializable
@Entity
data class Stage(
@field:Id
var env: String = "",
var description: String = ""
)
我使用了Hibernate,它会按预期生成表。问题是,我是否正确定义了ManyToOne
还是错过了什么?关于本this教程,我必须在一侧定义ManyToOne
,在另一侧定义OneToMany
。
最佳答案
您不必来定义关系的另一面。仅当希望可以从双方访问关系时,才需要这样做。
如果要这样做,则必须执行以下操作。我不熟悉@Embeddable
,但是我想它应该与此类似:@Entity
data class Environment(
@OneToMany(mappedBy = "environment", cascade = CascadeType.ALL)
var stages: List<Stage>
)
@Entity
data class Stage(
@ManyToOne
var environment: Environment
)
关于java - 我是否在组合键中正确定义了多对一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64342851/