发现一个hibernate针对derby数据库的问题bug,及解决办法
2011-01-01 19:40
633 查看
//最近apache软件基金会,发布了derby10.7,由于derby到10.7版本才支持boolean数据类型,今天发现一个hibernate针对derby数据库的一个bug,特意把它贴出来,以提醒他人。
//2011-01-01发现的hibernate针对derby数据库的问题。
//有问题的JPQL查询语句
//String sql = "SELECT letter FROM LetterReceiveModel As letter WHERE letter.receivePersonId=?1 AND letter.read=false AND letter.favoriteBoxFlag=false AND letter.trashBoxFlag=false";
//发现hibernate在翻译JPQL查询时,翻译规则是,false—>0,true—>1,所以对于bit类型的字段是合适的。
//但是对于derby数据库的boolean型字段类型就会出错,解决办法是明确传递boolean型参数,这样就可以避开这个bug。
//没问题的JPQL写法
String sql = "SELECT letter FROM LetterReceiveModel As letter WHERE letter.receivePersonId=?1 AND letter.read=?2 AND letter.favoriteBoxFlag=?3 AND letter.trashBoxFlag=?4";
//
Query query = this.getEntityManager().createQuery(sql);
query.setParameter(1, receivePersonId);
query.setParameter(2, false);
query.setParameter(3, false);
query.setParameter(4, false);
//执行查询
List<LetterReceiveModel> objList = query.getResultList();
//2011-01-01发现的hibernate针对derby数据库的问题。
//有问题的JPQL查询语句
//String sql = "SELECT letter FROM LetterReceiveModel As letter WHERE letter.receivePersonId=?1 AND letter.read=false AND letter.favoriteBoxFlag=false AND letter.trashBoxFlag=false";
//发现hibernate在翻译JPQL查询时,翻译规则是,false—>0,true—>1,所以对于bit类型的字段是合适的。
//但是对于derby数据库的boolean型字段类型就会出错,解决办法是明确传递boolean型参数,这样就可以避开这个bug。
//没问题的JPQL写法
String sql = "SELECT letter FROM LetterReceiveModel As letter WHERE letter.receivePersonId=?1 AND letter.read=?2 AND letter.favoriteBoxFlag=?3 AND letter.trashBoxFlag=?4";
//
Query query = this.getEntityManager().createQuery(sql);
query.setParameter(1, receivePersonId);
query.setParameter(2, false);
query.setParameter(3, false);
query.setParameter(4, false);
//执行查询
List<LetterReceiveModel> objList = query.getResultList();
相关文章推荐
- 一个页面使用两次timepicker.js引起的Maximum call stack size exceeded问题解决办法及bug修复
- 在家看一个cms的源代码,发现导航栏由于栏目太多不能显示的问题,在网上找的解决办法
- 刚刚发现的一个小问题的解决办法(datalist绑定和itemcommand)
- 一个页面使用两次timepicker.js引起的Maximum call stack size exceeded问题解决办法及bug修复
- oracle 11g 查询时数据库有值返回空的bug解决(hibernate架构有这个问题)
- (数据库未打开错误)跟大家分享一个Oracle问题的解决办法
- struts,hibernate,spring配置时问题汇总及解决办法
- JQuery slideshow的一个小问题(如何发现及解决过程)
- 使用PLSQL Developer时,“ORA-12154: TNS:无法解析指定的连接标识符”问题的一个解决办法
- 64位win7下PL/SQL Developer 报“ORA-12154: TNS:无法解析指定的连接标识符”问题的一个解决办法
- 服务器安装PHP扩展:curl问题解决办法(针对Wampserver2.4-x86)
- 关于UIWebView一个很奇怪问题的另类解决办法(高度递增问题)
- Spring HibernateTemplate 无法提交数据库的解决办法之一
- 64位win7下PL/SQL Developer 报“ORA-12154: TNS:无法解析指定的连接标识符”问题的一个解决办法
- 有关Word 2010、语言和输入法的一个诡异的问题以及解决办法
- [原创]openstack一个常见问题的解决办法
- 解决Hibernate不能自动创建数据库表的问题
- 解决window7下网络未识别问题,挺不错的一个办法
- 中检测到一个可能的数据库一致性问题。|解决方法
- Windows Server 2008 R2 X64安装Oracle 10g R2后不能创建数据库问题解决办法