用了这么久的Hibernate了,今天却遇到一个从未遇到的问题,幸好我思维敏捷,善于联想,才得以在短时间内发现并解决了问题。以下是具体描述。

我在HibernateDAO这个类里增加了一个方法如下:

public Object getById(Class clazz, String id) throws HibernateException{ 
   return session.find("from "+clazz.getName()+" o where o.id=?",id,Hibernate.STRING).get(0); 

你知道,我的PO类的主键都是名为oid的。凑巧的是,有一些PO类除了具有oid属性外,还具有名为id的属性,用来表示业务编号,例如教师编号、文化程度的编号等等。这些类在使用这个方法时总报下面的异常:

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 

郁闷了半个小时,终于想到,会不会是查询语句中的o.id,Hibernate认为这里的id表示的是主键oid呢?在debug里把参数按oid的值一改,发现果然如此!

解决方法:暂时还不知道有什么方法能起到转义的作用,不过id这个属性确实有点容易产生歧义,还是改名为code吧。

[Hibernate]关于ID的一个容易混淆的地方相关推荐

  1. JPA+Hibernate 3.3 ——第一个JPA程序

    所需要的最小的jar包(注意:jar包所在路径不能含有空格或中文) hibernate3.jar hibernate-cglib-repack-2.1_3.jar slf4j-api-1.5.2.ja ...

  2. html class和id,css教程之样式表的基本语法(二) class(类)和id的一个小实例

    class(类)和id的一个小实例 在上一节中我们了解了如何为特定的标签定义样式,例如我们利用 "h1{font-size: 12px;}"将页面内所有的标题1的字体大小改为了12 ...

  3. 通过ID查询一个用户的两种开发方法

    通过ID查询一个用户的两种开发方法 数据库建表sql语句如下:https://github.com/beyondyanyu/Sayingyy/blob/master/JDBC2-数据库sql建表语句 ...

  4. 字符串混淆技术应用 设计一个字符串混淆程序 可混淆.NET程序集中的字符串

    关于字符串的研究,目前已经有两篇. 原理篇:字符串混淆技术在.NET程序保护中的应用及如何解密被混淆的字符串 实践篇:字符串反混淆实战 Dotfuscator 4.9 字符串加密技术应对策略 今天来讲 ...

  5. java生成一条唯一的邀请码_根据用户id生成一个唯一邀请码

    需求描述:根据用户id生成与之对应的唯一邀请码,范围为'0-9A-Z'. 这个需求的重点在于加粗的部分,也就是要能够根据邀请码反推出用户ID,这样邀请码就不用入库了,在用户量很大的情况下,性能可以得到 ...

  6. php用户注册自动生成邀请码,PHP如何实现根据用户id生成一个唯一邀请码

    根据用户id生成与之对应的唯一邀请码,范围为'0-9A-Z'.这个需求的重点在于加粗的部分,也就是要能够根据邀请码反推出用户ID,这样邀请码就不用入库了,在用户量很大的情况下,性能可以得到不小的提升. ...

  7. 2012年9月14日部分反编译一个被混淆过的 .net 程序的笔记

    在前次反编译的基本上,昨晚花了几个小时的时间部分反编译一个被混淆过的 .net 程序.终于分析出了相关的代码,期间不停的访问MSDN网站现学现买.发现 .net 整个就是一开源软件,就算是混淆之后分析 ...

  8. 在编写flash游戏播放声音时的一个要注意的地方

    在编写flash游戏播放声音时的一个要注意的地方 如果该机子没有装声卡,或是声卡有问题,或操作系统如win 2003 server禁用了声卡,或提示没有活动混音器设备可用 播放声音得不到channel ...

  9. SpringMvc实现一个账号只能在一个地方登陆,其他地方强制下线

    一. 前言 在处理项目登录问题的时候,为了账号的安全性以及信息的同步性,有时我们需要做到同一个账户只允许在一处地方登录,如果一个账户在一个处地方登录之后,之后在另一个地方也使用同一个账户登录,则前一个 ...

最新文章

  1. Windows如此普及,为什么要学Linux
  2. R语言偏相关或者部分相关性系数计算实战:使用psych包计算(Partial Correlation)偏相关或者部分相关性系数并用建设检验检验相关性的显著性
  3. 华为用MySQL还是oracle_25.Oracle和Mysql的区别
  4. mybaits十七:使用foreach标签
  5. 谈谈一些有趣的CSS题目(十七)-- 不可思议的颜色混合模式 mix-blend-mode
  6. 【C++深度剖析教程13】函数对象的分析
  7. WordPress忘记密码的5种解决方法
  8. mcq 队列_MCQ | 8086微处理器中的寻址模式
  9. ajax写删除程序,ajax处理程序删除标记
  10. ogre 1.9SDK阅读笔记
  11. 【面试经历】问题总结
  12. 智能化工厂数字化管理系统软件解决方案
  13. 【LINUX】自己整理的干货,拿去看吧,不谢!!!。。。。。。。。。。。。
  14. python实现em聚类算法_EM算法的python实现的方法步骤
  15. 将Python程序打包成exe文件
  16. 2021年最新版Git一天入门教程
  17. L1-009 N个数求和(解决测试点三错误)
  18. 单自由度体系对简谐荷载的反应
  19. 《让子弹飞》系列——不输的汤师爷
  20. PS批量给图片加水印

热门文章

  1. ORACLE数据库自动备份压缩的批处理脚本 rar 7z
  2. 欧几里得与扩展欧几里得总结
  3. map/vector erase
  4. java中的内存一般分成几部分?
  5. WINDOWS 下安装boost
  6. centos安装python gcc sqlite
  7. js 简单的滑动教程(四)
  8. Integer int比较大小
  9. 诗与远方:无题(四十一)
  10. ProtoBuf3语法指南(Protocol Buffers)_下