日期:2014-05-20  浏览次数:20625 次

2个hibernate查询问题
1  
      库里是number类型,没有默认值
  映射到xml后
    <property   name= "locationCode "   type= "long ">
                        <column   name= "LOCATION_CODE "   precision= "1 "   scale= "0 "   />
                </property>
          当查记录的时候如果这个属性值是空,则会报错,只有当该属性非空的时候才可以查出来,这是为什么??好象是配置文件的问题

 2
   数据库的时间是varchar类型,长度是10
生成的xml
  <property   name= "expaireTime "   type= "string ">
                        <column   name= "EXPAIRE_TIME "   length= "10 "   />
                </property>
在写hibernate查询语句时候
if(StringUtils.isNotBlank((String)map.get( "dateBegin "))){
buffer.append( "   and   to_char(t.expaireTime, 'yyyy-mm-dd ')> =   :bir_date ");
if(StringUtils.isNotBlank((String)map.get( "dateEnd "))){
buffer.append( "   and   to_char(t.expaireTime, 'yyyy-mm-dd ') <=   :bir_date ");
}
}
要比较的,这吗写也不对,请正确写法

------解决方案--------------------
问题一,在对应的BO文件中,用Long类型而不是long,否则在空转换时会出错