Hibernate应用中遇到的若干问题
2006-11-14 17:23
323 查看
在Hibernate的实际运用中遇到几个小问题。通过查看Hibernate的官方帮助获得了解决。现总结一下。
一、多对多关系的查询问题
用户(TUser)和角色(TRole)存在多对多的关系:一个用户可以拥有多个角色,而一个角色可以有多个用户。显然这个时候会采用多对多的映射,用户(TUser)和角色(TRole)之间通过一个中间表进行关联。这个时候如果要获取特定角色的所有用户,最简单的方式当然是
TRole.getUsers()
这种方式会获取该角色的所有用户,用户很多以至于要分页现实信息,那么这个时候肯定就不行了。这时可以采用下面这种方式:
//其中"Order by this.id"可以用别的过滤条件,this.id对应的是TUser的id
//按TUser的id排序,选取前5个用户
session.createFilter(role.getUsers(),"Order by this.id").setFirstResult(0).
setMaxResults(5).list();
二、集合类的排序问题
集合类排序其实有好几种方法,在官方参考中写得很清楚。我尝试用了其中一种:在Set中增加order-by属性。这里要注意的是对应的Java类必须用LinkedHashSet实例化(对应JDK5.0来说,相信没什么太大的理由是用低版本的jdk吧)。
三、字符串函数substring()
substring()会翻译成相应数据库的substring函数吧,这是我猜的,我只在sqlserver 2000下 做过测试。其用法是substring(expression, start, length):expression对应POJO类的字段, 而start是起始位置(从1开始),length为截取字符串长度。这里start很奇怪,如果不是 从正整数开始(>0)而是从0开始,那么截取字符串的长度则是length-1。这肯定是sql server的问题了。
一、多对多关系的查询问题
用户(TUser)和角色(TRole)存在多对多的关系:一个用户可以拥有多个角色,而一个角色可以有多个用户。显然这个时候会采用多对多的映射,用户(TUser)和角色(TRole)之间通过一个中间表进行关联。这个时候如果要获取特定角色的所有用户,最简单的方式当然是
TRole.getUsers()
这种方式会获取该角色的所有用户,用户很多以至于要分页现实信息,那么这个时候肯定就不行了。这时可以采用下面这种方式:
//其中"Order by this.id"可以用别的过滤条件,this.id对应的是TUser的id
//按TUser的id排序,选取前5个用户
session.createFilter(role.getUsers(),"Order by this.id").setFirstResult(0).
setMaxResults(5).list();
二、集合类的排序问题
集合类排序其实有好几种方法,在官方参考中写得很清楚。我尝试用了其中一种:在Set中增加order-by属性。这里要注意的是对应的Java类必须用LinkedHashSet实例化(对应JDK5.0来说,相信没什么太大的理由是用低版本的jdk吧)。
三、字符串函数substring()
substring()会翻译成相应数据库的substring函数吧,这是我猜的,我只在sqlserver 2000下 做过测试。其用法是substring(expression, start, length):expression对应POJO类的字段, 而start是起始位置(从1开始),length为截取字符串长度。这里start很奇怪,如果不是 从正整数开始(>0)而是从0开始,那么截取字符串的长度则是length-1。这肯定是sql server的问题了。
相关文章推荐
- Hibernate POJO在序列化(JSON)时遇到的若干问题
- Android应用开发环境搭建遇到的若干问题
- ALV Class 应用中遇到的若干问题说明
- 总结一下iOS应用发布到app store的过程和遇到的问题
- idea debug jboss 应用遇到到问题记录
- java/matlab混合编程应用移植到其他电脑上遇到的问题
- 部署Silverlight应用时遇到的问题
- struts2实现上传文件时遇到的若干问题
- Hibernate开发中遇到的问题记录
- 复选框应用及遇到的问题
- 关于hibernate新手遇到的问题
- Hibernate的order by遇到null致数据丢失的问题
- MySQL 查询中遇到的若干问题
- 提交应用遇到"Missing Screenshot"问题的解决方法
- 发布应用到Google Play遇到问题汇总
- hadoop在上传文件遇到若干问题
- 电视应用开发遇到的问题的总结
- hibernate测试遇到的问题org.apache.commons.lang.exception.NestableException
- android编程中容易遇到的若干问题
- Tomcat应用中遇到的几个问题