只有当column存在时才hibernate @Column



我有:

@MappedSuperClass
public class A{
   private int boo;
   @Column(name = boo)
   public int getBoo(){
       return boo;
   }
   public void setBoo(int boo){
       this.boo = boo;
   }  
}

问题是,列'boo'可能不存在于所有表中。是否有可能注释getBoo(),以便如果列不存在,它将'boo'保持为空?

也许在这里使用继承更好,我的意思是class AWithBoo extends A

在工作中我们遇到了同样的问题:一个被27个国家使用的应用程序。所有这些国家都希望有自己的特色,因此有自己的db列。

在JPA/Hibernate中这是不可能做到的。您必须为所有国家共享相同的实体属性,这意味着为许多国家创建无用的列,并逐个国家处理db约束。

明确的答案是:不,你不能这样做。你应该重新考虑你的设计。为什么不使用继承并将boo移到派生类呢?

顺便说一句:如果你能像你在问题中描述的那样将boo设置为null,那么int boo将会随着NPE爆炸;)

最新更新