我有一个父类命名为parent
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;
}
}
我知道我不能重写实例变量,但是有可能删除子类上的约束吗?例如,我想要的childdone类对象有空stringOne或空stringTwo,如果我想。但是其他9个子对象可以有来自父类的约束。
最重要的部分是,我不能有父作为一个抽象。很抱歉编辑晚了。
我相信您需要的是一个映射的超类。请确保将注释放在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 */
}