2017-07-31 88 views
2

我使用Springboot与MongoDB中,我有一个这样的类:Springboot:如何删除子类属性上的注释?

class Mcq { 
    @DBRef public List<Question> questions; 
} 

class McqInstance extends Mcq { 
    // Here I want a List<QuestionAnswers> questions instead, without DBRef 
} 

我怎样才能做这样的事情,这可能吗?还是我应该重新声明McqInstance而不扩展Mcq?

回答

0

由于UserF40的答案,我发现了一个简单的解决方案,而不具有冗余代码:使用抽象类:

abstract class AbstractMcq { 
    // common properties and functions 
} 

class Mcq extends AbstractMcq { 
    @DBRef public List<Question> questions; 
} 

class McqInstance extends AbstractMcq { 
    public List<QuestionAnswers> questions; 
} 
1

没有延伸的Redeclare。关闭这个简短的片段,对于多选题的建模,扩展看起来不正确。

问问你自己为什么用户需要从课堂上延伸出问题?

+0

我需要延长主类,因为在McqInstance,问题是随机和答案的顺序也是如此,+也许所有的问题都没有用在Mcq的实例中 我不想重新声明我的课程,因为它会使我的代码冗余,但我使用你的建议并找到了一个替代方案: 我将声明一个AbstractMcq对象没有问题列表,我将在Mcq类和McqInstance类中扩展它 –