tôi có ba lớp Kotlin của đại diện các đơn vị Hibernate:Overriding Kotlin của dẫn đến hai JPA @ id
@MappedSuperclass
abstract class Parent {
@Id @GeneratedValue @Column(nullable=false)
var id: Long? = null
}
@Entity
class Child1 {}
@Entity
class Child2 {
@Id @GeneratedValue @Column(nullable=false)
override var id: Long? = null
set(value) {
super.id = value
doSomething()
}
}
Lưu ý tôi cần phải ghi đè lên các setter cho id
gọi doSomething
sau đó. Đó là cách tôi đã làm id trong Java trước đây.
Nó xây dựng một cách chính xác, nhưng Hibernate không thích nó:
A foreign key refering Child2 from ... has the wrong number of column. Should be 2.
Từ một số lỗi khác mà tôi nghi ngờ overriden id
không overriden một cách chính xác và Hibernate thấy id
cột hai lần - từ Parent
và Child2
.
Bạn có thực sự cần thêm chú thích vào phiên bản 'id' được ghi đè không? (Đã không cố gắng bản thân mình) – Xvolks
Tôi đã cố gắng đó là tốt, nhưng sau đó nó dẫn đến: 'Lặp đi lặp lại cột trong ánh xạ cho thực thể: Child2 cột: id (nên được ánh xạ với insert =" false "update =" false ")' –