簡體   English   中英

是否可以覆蓋子類中字段的Field約束

[英]Is it possible to override the Field constraint on a field in a child class

我有一個家長班,叫它家長

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個子對象可以具有父類的約束。

最重要的部分是我不能將父母作為摘要。 對於這次后期編輯,我感到非常抱歉。

我相信您想要的是映射超類。 確保將注釋放在您的吸氣劑上,而不是屬性本身。

@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 */
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM