关于hibernate方式获取记录的时候字段为空就获取空记录的解决方法
来源:互联网 发布:网络图书馆图片素材 编辑:程序博客网 时间:2024/06/05 15:59
在oracle数据库下,如果是使用hibernate查询数据的时候,特别是使用view的对象查询数据的时候,有些字段为空的时候就会出现整条记录都获取不到的情况,这是因为在生成xml文件和pojo(bean)文件的时候,因为view没有主键的说法,所以会生成一个pojo类和一个对应的ID类(主键类),这个ID类就是view中的所有字段,那个pojo类就是这个ID类一个字段,在hibernate获取记录时候,主键类为空就会放弃这条记录,所以如果使用view的pojo类查询数据时候,出现某一个字段为空,整条记录就为空了,如果所有记录都有一个字段为空,则会出现获取到的记录数量为 0 的情况。
解决方法:
1,重新编写ID类和pojo类,把非空字段,例如使用原表中的主键为ID类字段,其他字段都写在pojo类中,并提供getter/setter方法。
2,编写xml文件:
把非主键字段改成一般的字段,例如以下的一个非主键字段修改为:
<composite-id name="id" class="com.bl.pojo.ViewBlParseAllScoreId">
<key-property name="subSchoolId" type="java.lang.Long">
<column name="SUB_SCHOOL_ID" precision="18" scale="0" />
</key-property>
</composite-id>
修改后
<property name="subSchoolId" type="java.lang.Long">
<column name="SUB_SCHOOL_ID" precision="18" scale="0" />
</property>
这样既可。
- 关于hibernate方式获取记录的时候字段为空就获取空记录的解决方法
- 关于hql中部分关联字段为空时,不报错而直接查不出字段为空的记录
- SQL查询某字段非空的记录解决方法
- 删除Access内字段值为空的记录
- 将表中所有字段都不为空的记录选出
- 从查询某个字段为空值的记录说起
- mysql查询字段值为空的记录
- sql server查询字段值为空的记录
- hibernate中查询外键为空的记录
- document.getElementById获取控件对象为空的解决方法
- 关于getClass().getClassLoader() 为空的时候
- 关于hibernate查询,数据库字段为clob的错误原因及解决方法记录
- 关于SpringMVC的后台调试获取的值为空
- Access-查询时间为空的记录
- 关于Hibernate查询获取多个字段的记录并封装的方法
- ThinkPHP如何获取某字段为NULL的记录
- Oracle用一个表的列更新另一个表对应记录的列,一不小心有字段就更新为空了
- 记录开发中遇到的坑(华为手机获取拍照权限后拍照,返回值为空)!
- Java EE架构师认证
- Qt 4.7.4 QtCreator在编译时卡在jom.exe的问题
- TextView中getLineCount()返回为0
- Part 05 简易画板的实现(Qt)[2012.02.13]
- XFire WebService开发快速起步
- 关于hibernate方式获取记录的时候字段为空就获取空记录的解决方法
- wwwww
- 远程连接出现“由于无法升级或重续本地计算机的客户端访问许可证,远程会话被中断。请跟服务器管理员联系。”问题的解决方法
- OpenLDAP
- 在Hibernate应用中如何处理批量更新和批量删除
- Office PIA:绕过Bug Q320369:Old format or invalid type library" error when automating Excel
- 在MVC3中使用UserData
- 如何备份远程服务器上的ORACLE数据库到本地电脑
- 可逆加密处理类分享 支持密匙