公司一老项目,数据库中用整型字段存储的真假,0是假、1代表真,持久化类里也是整型变量Integer,但是业务逻辑中总要进行真假运算,每次都得把整数先换算成boolean值,非常繁复。但是数据库和持久化类又不能改,我想了个方法,不知能不能行,请大侠们指教:持久化类中还是用整型变量,在getter和setter中做转化,getter中是从Integer到boolean,setter中则是相反。但是我不确定hibernate能不能将这样的bean持久化到整型字段的表中?有个注解是AccessType,这注解我给设置成field是不是就能绕过getter和setter了?还是说依旧通过getter、setter,hibernate自动转换?

解决方案 »

  1.   

    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);
    }你看这样可行?
      

  2.   

    AccessType = field 直接通过属性映射,不同哦那个过set和get方法  默认为property是通过方法映射
      

  3.   

    这个设计是没有问题的,并不是所有的数据库都有bool 类型。
      

  4.   

    啊,好吧,我想知道hibernate能不能自动把boolean映射成int。。