我有一个父类,我们称之为父
public class Parent {
@Basic(optional = false)
String stringOne;
@Basic(optional = false)
String stringTwo;
public String getStringOne() {
return stringOne;
}
public void setStringOne(String stringOne) {
this.stringOne = stringOne;
}
public String getStringTwo() {
return stringTwo;
}
public void setStringTwo(String parentTwo) {
this.stringTwo = parentTwo;
}
}
然后有大约10个子类,这里是其中之一
public class ChildOne extends Parent{
@Override
public String getStringOne() {
return stringOne;
}
@Override
public String getStringTwo() {
return stringTwo;
}
}
我知道我不能覆盖实例变量但是可以删除子类的约束。对于例如如果我愿意,我希望childOne类对象具有null stringOne或null stringTwo。但是其他9个子对象可以具有父类的约束。
最重要的部分是我不能将父母作为摘要。我很抱歉这个晚编辑。
答案 0 :(得分:0)
我相信你想要的是Mapped Superclass。确保将注释放在getter而不是属性本身上。
@MappedSuperclass
public abstract class Parent {
String stringOne;
String stringTwo;
@Basic(optional = false)
public String getStringOne() {
return stringOne;
}
@Basic(optional = false)
public String getStringTwo() {
return stringTwo;
}
/* setters here */
}
@Entity
@Table(name="child_one")
public class ChildOne extends Parent{
@Override
@Basic(optional = true)
public String getStringOne() {
return stringOne;
}
@Override
@Basic(optional = true)
public String getStringTwo() {
return stringTwo;
}
/* setters here */
}