我有:
@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'保持为null?
答案 0 :(得分:3)
也许在这里使用继承更好,我的意思是class AWithBoo extends A
。
答案 1 :(得分:1)
明确的答案是:不,你不能这样做。你一定要重新考虑你的设计。为什么不使用继承并将boo移动到派生类?
顺便说一下:如果你可以像你在问题中描述的那样将boo设置为null,那么int boo
会随着NPE而爆炸;)
答案 2 :(得分:1)
在工作中,我们遇到了同样的问题:27个国家/地区使用的应用程序。所有这些都需要自己的功能,所以他们自己的数据库列。
在JPA / Hibernate中,这是不可能的。您必须为所有国家/地区共享相同的实体属性,这意味着为许多国家/地区创建无用的列,并按国家/地区处理数据库约束。