我正在尝试使用Kotlin密封类解决我的继承问题,并使用冬眠解决强制问题。

这是我的类(class):

@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "type", discriminatorType = DiscriminatorType.STRING)
sealed class LegalGuardian(
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    var id: Int? = null
)

@Entity
@DiscriminatorValue(value = "MOTHER")
data class MotherLegalGuardian(
    @OneToOne(cascade = [CascadeType.ALL], orphanRemoval = true)
    val pesel: Pesel
) : LegalGuardian()

@Entity
@DiscriminatorValue(value = "OTHER")
data class OtherLegalGuardian(
    val firstName: String,
    val lastName: String,
    @OneToOne
    val address: Address
) : LegalGuardian()

这是引发的问题:

最佳答案

我不知道冬眠的工作原理。
但是我想这个问题与sealed-classes docs的注释有关:

08-19 05:13