hibernate使用笔记
来源:互联网 发布:sql r2是什么意识 编辑:程序博客网 时间:2024/04/29 03:59
字符ID:<generator class="uuid"/>
自己赋值:<generator class="assigned"/>
使用Hibernate获取最大值(max)的三种方法
获取最大值的三种方法:
1. 使用 hsql
Integer c = (Integer)dbt.getSession().createQuery("select max(a.ArticleId) from Article a " ).uniqueResult();
System.out.println(c);
注意:要加上别名“a”, a.ArticleId注意大小写! 否则会出现"无法解释的属性"错误!
2. 使用native sql
sql = "select max(articleid) maxid from ljarticle";
maxId = (Integer)(session.createSQLQuery(sql).addScalar("maxId", Hibernate.INTEGER) ).uniqueResult();
注意:要加上“maxid”标量
Integer c = (Integer)dbt.getSession().createCriteria(Article.class)
.setProjection( Projections.projectionList().add(Projections.max("ArticleId " ) ) )
.uniqueResult() ;
同样要注意ArticleId是区分大小写的!
illegal attempt to dereference collection
org.hibernate.NonUniqueObjectException的原因与解决方法
使用hibernate更新对象时,出现如下错误:
org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session:[com.fatkun.dao.hibernate.User#12]
原因
在同一个session内,如果已经有一个对象已经是持久化状态(load进来等),现在构造一个新的PO,和前一个持久化对象拥有相同的持久化标识(identifier),在update的时候,就会抛这个错误。
举个例子(伪代码):
解决方法
例如上面例子直接对user1操作,最后更新user1
2.如果是hibernate3以上,可以使用session.merge()方法
3.把session中同标识的对象移出(session.evict(user1)),使他成为脱管的状态,然后user2就可以update了。
- Hibernate annotation 使用笔记
- hibernate 使用笔记
- Hibernate annotation 使用笔记
- Hibernate annotation 使用笔记
- Hibernate使用笔记
- hibernate使用笔记
- hibernate学习笔记之hibernate的使用
- Hibernate学习笔记之----Hibernate基本使用
- 使用Hibernate 操作数据库笔记
- hibernate笔记-003-使用注解
- Hibernate Dao的使用 Hibernate学习笔记(二)
- hibernate笔记(一)hibernate 配置及使用
- hibernate学习笔记12--Hibernate中使用的集合类型
- Hibernate学习笔记 -- day03 使用JPA开发hibernate
- Hibernate学习笔记:使用native sql查询
- Hibernate学习笔记_02_使用Annotation
- Hibernate过滤器的使用(学习笔记)
- Hibernate表中外键使用(个人笔记)
- Android Http协议笔记(使用HttpURLConnection)文件上传+参数
- jquery灰色背景弹出框
- 关于 rman duplicate from active database 搭建dataguard--系列一
- android显示Sdcardde的大图片
- ContextMenu(上下文菜单)
- hibernate使用笔记
- jquery MP3播放器
- 为什么r.java文件中没有button的id
- [黑马程序员]——Java接口Interface
- jquery 判断是否是android或者iOS系统
- 使用 rman duplicate from active database 搭建dataguard 手记--系列二
- NGUI ——UILabel复制粘贴
- MySQL集群节点、节点组、数据副本、以及分区
- 业余10—解决只能打开网页不能打开QQ或视频软件问题