我正在擴展一個不會自動生成其ID的實體。有沒有辦法來重寫繼承的生成策略?
我想在我的派生類中將其生成策略'重寫'爲AUTO。
就是這樣。
@Entity
public class Base {
@Id
@Column(name = "id")
public Integer getId() {
return id;
}
}
@Entity
public class Extender extends Base {
@GeneratedValue(strategy = GenerationType.AUTO)
public Integer getId() {
return super.getId();
}
}
這是我所得到的,當我嘗試這樣做:
Caused by: org.hibernate.MappingException: Repeated column in mapping for entity: Extender column: id (should be mapped with insert="false" update="false")
我明白爲什麼會這樣,但我需要知道是否有這樣做的一種有效方式。
謝謝,
指定'javax.persistence.Inheritance'不是強制性的,默認是'SINGLE_TABLE'。我沒有在這裏包含所有的代碼,請假定它是正確的並且工作(除了@Id部分)。 – Simeon
你的意思是我可以在我的基類id中指定'@ Transient',然後在派生類中進一步定義它? – Simeon