0
如下圖所示,我有2持久性對象車屬性:如何不能承受部分或全部父持久性屬性
public class Car {
@Column(name = "COLOR")
protected String color;
@Column(name = "BRAND")
protected String brand;
}
從汽車擴展使用2個屬性的所有對象,但在一些他們,我想排除一個或所有屬性。 例如:
public class SpecialCar extends Car{
//how to tell here that i don't want to have Brand column
}
THX的幫助
好了,我不知道這是可能的如果有什麼是受保護的或公共的或沒有修飾符,那麼它**將被繼承。如果某些東西是「私人」的,它就是**不能繼承。 – Astrobleme
你應該從hibernate中檢出@AttributeOverride註解。例如用於:http://viralpatel.net/blogs/hibernate-inheritance-table-per-concrete-class-annotation-xml-mapping/ – Ben
不要這樣做。如果一個'SpecialCar'延伸一個'Car',那麼對於所有重要的事情來說,它必須表現得像Car一樣(如果一個Car有品牌,那麼它也必須有)。如果你不這樣做,這違反了面向對象軟件的[Liskov替代原則](http://en.wikipedia.org/wiki/Liskov_substitution_principle),這會導致複雜而難以理解/維護軟件。如果你仍然希望SpecialCar有所不同,那麼我建議使用[組合而不是繼承](http://en.wikipedia.org/wiki/Composition_over_inheritance)。 – acdcjunior