日期:2014-05-19  浏览次数:20703 次

hibernate持久化问题,公司老代码维护好多年了,限制比较多,大侠请进
公司一老项目,数据库中用整型字段存储的真假,0是假、1代表真,持久化类里也是整型变量Integer,但是业务逻辑中总要进行真假运算,每次都得把整数先换算成boolean值,非常繁复。但是数据库和持久化类又不能改,我想了个方法,不知能不能行,请大侠们指教:

持久化类中还是用整型变量,在getter和setter中做转化,getter中是从Integer到boolean,setter中则是相反。但是我不确定hibernate能不能将这样的bean持久化到整型字段的表中?有个注解是AccessType,这注解我给设置成field是不是就能绕过getter和setter了?还是说依旧通过getter、setter,hibernate自动转换?

------解决方案--------------------
private int state;

public int getState(){
return this.state;
}
public void setState(int state){
this.state=state;
}

public boolean getState1(){
return this.state==0?false:true;
}

public void setState1(boolean state){
setState(state?1:0);
}

你看这样可行?
------解决方案--------------------
AccessType = field 直接通过属性映射,不同哦那个过set和get方法 默认为property是通过方法映射
------解决方案--------------------
这个设计是没有问题的,并不是所有的数据库都有bool 类型。