hibernate
文章平均质量分 89
LzwGlory
坚持自己的路
展开
-
利用log4j显示hibernate打印sql中的参数
利用log4j显示hibernate打印sql中的参数大家都知道在 hibernate.cfg.xml 配置文件中添加以下三条配置,就可以在控制台显示执行的sql:[html] view plain copy property name="show_sql">trueproperty> property name转载 2016-07-22 12:11:28 · 916 阅读 · 0 评论 -
hibernate-tools详细使用教程
hibernate-tools详细使用教程使用hibernate-tool的版本是hibernatetools-Update-2010-09-08_14-25-39-H23 1.在eclipse下安装好hibernate-tool插件,新建一个hibernate.cxf.xml文件 2.写好数据库连接配置 3. 4转载 2014-10-31 14:42:33 · 1133 阅读 · 0 评论 -
org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type sette
org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type sette数据库里amount字段值为NULL,进行对象持久化关联时,企图给对象的这个属性赋值为空,而对象实例的这个属性不能为空值,所以出现错误。【amount是int型,不能为空】转载 2014-10-24 19:04:30 · 648 阅读 · 0 评论 -
hibernate继承关系映射
在问题域中实体之间的继承关系在数据库中有多种体现方式。在hibernate中,要实现面向对象的对实体进行持久化操作,那么就需要对实体类进行继承关系映射。根据数据表的不同形态,映射方案有三种实体继承关系模型:1.Tpc每个具体类一张表mysql> show tables;+--转载 2014-09-04 10:26:32 · 846 阅读 · 0 评论 -
hibernate的批量删除
呵呵,来说说hibernate的批量删除;一般而言,hibernate的批量删除的写法有两种,一种是hibernate内置的批量删除,不过他的批量删除是将每条记录逐一生成删除语句,其效率极低,当然我们可以使用抓取策略给其进行优化,不过这只是亡羊补牢的方法,效率的提升依然不能让我们满意,很不推荐使用;另一种是由"拼串"形成的HQL语句,其能够形成一条语句,从而是效率得到最大的提升;转载 2014-09-04 10:57:40 · 844 阅读 · 0 评论 -
hibernate优化
Robbin总结的Hibernate性能优化要点:1.尽量使用many-to-one,避免使用单项one-to-many2.灵活使用单向one-to-many3.不用一对一,使用多对一代替一对一4.配置对象缓存,不使用集合缓存5.一对多使用Bag 多对一使用Set6.继承使用显示多态 HQL:from object polymorphism="exlicit" 避免转载 2014-09-03 23:34:49 · 807 阅读 · 0 评论 -
Hibernate4中buildSessionFactory方法废弃解决
在用Hibernate4时会发现:[java] view plaincopy"font-size:18px;">SessionFactory sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); buildSessionFact原创 2014-08-15 09:47:22 · 1503 阅读 · 0 评论 -
元素类型为 "session-factory" 的内容必须匹配 "(property*,mapping*,(class-cach....解决方法
问题:property*,mapping*,(class-cache|collection-cache)*,event*,listener*)解决的方法:The content of element type "session-factory" must match "(property*,mapping*,(class-cache|collection-cache)*,event转载 2014-08-14 22:50:40 · 4133 阅读 · 1 评论 -
struts2+spring+hibernate 懒加载异常:org.hibernate.LazyInitializationException: failed to lazily initializ
两种处理方法:一、在映射文件中设置lazy=false。二、用OpenSessionInViewFilter过滤器,注意hibernateFilter过滤器和struts2过滤器在映射时的先后顺序。同时要配置事物处理,否则会导致session处于只读状态而不能做修改、删除的动作。即在web.xml文件中如下配置: OpenSessionInVi转载 2014-08-27 01:07:26 · 1184 阅读 · 0 评论 -
Java_hibernate 之Criteria 与 DetachedCriteria查询
最近在做hibernate查询封装时,发现Hibernate 提供的Criteria接口查询方法还是蛮好用的,对sql语句不熟的同学来说可能是福音。 org.hibernate.Criteria对SQL进行封装,您可以通过Criteria进行组合各种查询条件,由Hibernate自动为您产生 SQL语句。官方给出的定义如下:public interface Criteria extends转载 2014-09-04 11:29:17 · 1210 阅读 · 0 评论 -
Spring3与hibernate4集中式声明事务管理与注解式事务管理
Email:137268431@qq.comBlog:http://blog.csdn.net/LzwGlory一.概述还像往常一样先了解下基础知识:Hibernate是一个开源的ORM框架,能自动为对象生成相应SQL并透明的持久化对象到数据库,我们首先来了解一下什么是“ORM”。ORM全称对象关系映射(Object/Relation Mapping),指将Java对象原创 2013-11-14 21:46:45 · 7726 阅读 · 0 评论 -
Hibernate的HQL中in参数设置
平时经常用Hibernate,由于习惯表间不建立关联,所以HQL查询时候经常要用in语句。 我最常用的情况有2种: 1、in后是个子查询,如 FROM A WHERE A.ID IN (SELECT B.AID FROM B WHERE ...),这样是没问题的,如果A.ID 和B.AID是相同的数据类型。 2、in的参数如果已知了,可以直接拼接在后面 如FR转载 2014-10-22 15:08:54 · 827 阅读 · 0 评论 -
hibernate3.0执行存储过程
hibernate3.0以上提供了两种方式执行存储过程。第一种 :用JDBC 方式Session session =HibernateSessionFactory.getSession(); //获取hibernate会话Connection conn = session.connection(); // 用session对象获取连接ResultSet rs =nu转载 2015-02-10 09:20:05 · 759 阅读 · 0 评论 -
Hibernate4之二级缓存配置
缓存:缓存是什么,解决什么问题? 位于速度相差较大的两种硬件/软件之间的,用于协调两者数据传输速度差异的结构,均可称之为缓存Cache。缓存目的:让数据更接近于应用程序,协调速度不匹配,使访问速度更快。 缓存的范围分为3类: 1.事务范围(单Session即一级缓存) 事务范围的缓存只能被当前事务访问,每个事务都有各自的缓存,缓存内的数据通常采用相互关联的对象形式.缓存的转载 2015-09-23 17:09:00 · 598 阅读 · 0 评论 -
Hibernate 使用原生SQL
HQL尽管容易使用,但是在一些复杂的数据操作上功能有限。特别是在实现复杂的报表统计与计算,以及多表连接查询上往往无能为力,这时可以使用SQL(Native SQL)实现HQL无法完成的任务。 1、使用SQL查询 使用SQL查询可以通过两种方式来实现: (1)、利用Hibernate提供的SQLQuery对象执行。即可以通过Session对象的createSQLQuery()转载 2015-05-06 11:39:25 · 1043 阅读 · 0 评论 -
怎样用hibernate的hql查询查询成map或list
这里制作一个引子,具体内容比较多,而且hibernate文档里的hql篇写的很详细可以这么用:List list = getHibernateTemplate().find("select new map(t1.c1,t2.c3) from table1 t1 ,table2 t2 where t1.c1=t2.c2");这样的话list里的每个元素都是一个map,每个map里包含两个转载 2015-05-03 14:51:29 · 1527 阅读 · 0 评论 -
Hibernate知识点积累!!
setFirstResult(0) setMaxResults(1) 就相当于原创 2014-04-24 15:07:24 · 653 阅读 · 0 评论 -
org.hibernate.NonUniqueObjectException 个人的解决
用hibernate做修改和删除的时候,有时候会遇到 org.hibernate.NonUniqueObjectException 异常,a different object with the same identifier value was already associated with the session可以解释为 有一个具有相同值的不同对象已经与和 session 相关联。转载 2014-06-16 16:46:41 · 1406 阅读 · 0 评论 -
深入hibernate的三种状态
学过hibernate的人都可能都知道hibernate有三种状态,transient(瞬时状态),persistent(持久化状态)以及detached(离线状态),大家伙也许也知道这三者之间的区别,比如瞬时状态就是刚new出来一个对象,还没有被保存到数据库中,持久化状态就是已经被保存到数据库中,离线状态就是数据库中有,但是session中不存在该对象。但是大家又是否对hibernate的ses转载 2014-07-14 11:01:07 · 653 阅读 · 0 评论 -
hibernate4中oracle,sqlserver,mysql数据库的sql方言配置(SQL Dialects)
hibernate4中oracle,mysql,sqlserver数据库的sql方言配置(SQL Dialects) 数据库类型Hibernate sql方言DB2org.hibernate.dialect.DB2DialectDB2 AS/400org.hibernate.dialect.DB2400Dialect转载 2014-07-08 09:17:48 · 3201 阅读 · 1 评论 -
hibernate级联更新
parent.setName(""); Iterator childs = parent.getChilds().iterator; while(childs.hasNext()){ Child child = (Child)it.next(); child.setId();//记得set这个,要不不是级联更新 child.setName(""); set.add(chil转载 2015-04-27 17:36:47 · 2582 阅读 · 0 评论 -
JPA 级联更新去孤子
在是使用JPA(hibernate)配置实体关系中,经常会遇到通过父实体对象级联批量更新子对象的需求,而且每次更新必须采用合并方式,即原来的所有子删除,只保留本次保存的所有子实体对象。例子:A为父对象,持有一个B的集合,A与B的关系为oneToMany. 第一次保存:设置A下的B集合成员为:1,2,3, 保存A后,B对象对应的数据表为:1,2,3第二次保存:设置A下转载 2015-04-27 17:34:59 · 2276 阅读 · 0 评论 -
使用hibernate中connection.release_mode,connection.autocommit和transaction.auto_close_session用法及需要注意的问题
hibernate默认情况:auto--释放jdbc resources 方式 如果不配置默认是auto (当然现在没有auto了,等同于"after_statement" or "after_transaction"),注意3.0以及之前默认是ON_CLOSE(也就是session关闭才释放jdbc链接)false--自动关闭sessionfalse--自动提交release_m转载 2015-04-08 11:27:32 · 6566 阅读 · 0 评论 -
Hibernate与 MyBatis的比较
最近做了一个Hibernate与MyBatis的对比总结,希望大家指出不对之处。第一章 Hibernate与MyBatisHibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分。 Mybatis 是另外一种优秀的O/R mapping框架。目前属于apache的一个子项目。MyBatis 参考资料官网:转载 2014-07-20 21:20:03 · 720 阅读 · 0 评论 -
Hibernate利用@DynamicInsert和@DynamicUpdate生成动态SQL语句
最近在使用Hibernate4中,发现两个很有奥秘的注解 @DynamicInsert 和 @DynamicUpdate如果是在配置文件的话那就是dynamic -insert 和 dynamic-update这两个注解在一定程度上可以增加与数据库操作相关的速度,可以节省SQL语句的执行时间,提高程序的运行效率。使用这两个注解只需要在实体类上加入即可,或者在*.hbm.xm转载 2014-03-13 13:55:18 · 1122 阅读 · 0 评论 -
Hibernate - DetachedCriteria 的完整用法
最近在项目中使用 Spring 和 Hibernate 进行开发,有感于 Criteria 比较好用,在查询方法设计上可以灵活的根据 Criteria 的特点来方便地进行查询条件的组装。现在对 Hibernate的Criteria 的用法进行总结: Hibernate 设计了 CriteriaSpecification 作为 Criteria 的父接口,下面提供了转载 2013-12-24 17:11:16 · 832 阅读 · 0 评论 -
hibernate_Restrictions用法
方法说明Restrictions.eq=Restrictions.allEq利用Map来进行多个等于的限制Restrictions.gt>Restrictions.ge>=Restrictions.l转载 2013-12-24 16:58:39 · 765 阅读 · 0 评论 -
Criteria 和 DetachedCriteria的区别与使用
Criteria 和 DetachedCriteria 的主要区别在于创建的形式不一样, Criteria 是在线的,所 以它是由 Hibernate Session 进行创建的;而 DetachedCriteria 是离线的,创建时无需 Session,DetachedCriteria 提供了 2 个静态方法 forClass(Class) 或 forEntityName(Name)转载 2013-12-24 10:48:38 · 912 阅读 · 0 评论 -
Hibernate Criteria 关联查询
Criteria對SQL進行封裝,讓開發人員可以用物件的方式來對資料庫進行操作,例如下面的查詢User表格中的所有資料:Criteria criteria = session.createCriteria(User.class);// 查詢user所有欄位List users = criteria.list();Iterator iterator = users.iterat转载 2013-12-16 23:53:54 · 1341 阅读 · 0 评论 -
JPA/Hibernate与Spring集成的事务分析
在hibernate或者是JPA中,对于所有的操作,都必须要在事务中提交,即在Hibernate的代码中,我们必须用以下的方式编程(注意,这里说是的Hibernate,不是Spring下的HibernateTemplate)Hibernate中:Java代码 Session session = sessionFactory.openSession(); Tr转载 2013-12-17 00:46:49 · 1706 阅读 · 0 评论 -
Hibernate_QL
Hibernate Query Language在Hiberante中所支持的查询有: n OID检索方式Ø OID对象标始符,按照对象的OID来检索对象。Session的get()和load()方法提供了这种功能。如果在应用程序中事先知道了OID,就可以使用这种检索对象的方式。n HQL检索方式Ø 使用面向对象的HQL查询语言。Session的f转载 2013-12-16 23:47:57 · 820 阅读 · 0 评论 -
Hibernate利用@DynamicInsert和@DynamicUpdate生成动态SQL语句
最近在使用Hibernate4中,发现两个很有奥秘的注解 @DynamicInsert 和 @DynamicUpdate如果是在配置文件的话那就是dynamic -insert 和 dynamic-update这两个注解在一定程度上可以增加与数据库操作相关的速度,可以节省SQL语句的执行时间,提高程序的运行效率。使用这两个注解只需要在实体类上加入即可,或者在*.hbm.xm转载 2013-12-16 22:46:26 · 1451 阅读 · 0 评论 -
hibernate联合主键生成机制(annotation方式)
这里记录hibernate中组合主键的annotation方式。hibernate-annotations说明文档中有说到组合主键使用annotation的方式实现,如下几种下面是定义组合主键的几种语法:1. 将组件类注解为@Embeddable,并将组件的属性注解为@Id2. 将组件的属性注解为@EmbeddedId3. 将类注解为@IdClass,转载 2013-12-11 11:56:02 · 964 阅读 · 0 评论 -
Hql语句注意事项总结 批量删除 批量查询
1.在Hql中使用group by的问题(1)使用统计函数作为输出结果select sum(total),sum(totalup) from AD where aid=? and fid=? and vdatetime>=? and vdatetime(2)使用统计函数作为查询约束条件 select uid from MM group by uid ha转载 2013-12-11 09:11:25 · 5597 阅读 · 0 评论 -
hibernate -- HQL语句总结
1. 查询整个映射对象所有字段//直接from查询出来的是一个映射对象,即:查询整个映射对象所有字段 String hql = "from Users"; Query query = session.createQuery(hql);转载 2013-12-10 21:02:53 · 1048 阅读 · 0 评论 -
Hibernate配置详细解释
hibernate.sourceforge.net/hibernate-configuration-3.0dtd可以在Hibernate3.1.3软件包中的src\org\hibernate目录中找到此文件--> "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernat转载 2014-01-21 14:19:51 · 829 阅读 · 0 评论 -
Positional parameter are considered deprecated; use named parameters or JPA-style positional paramet
hibernate 4.1之后对于HQL中查询参数的占位符做了改进,如果仍然用老式的占位符会有类似如下的告警信息:[main] WARN [org.hibernate.hql.internal.ast.HqlSqlWalker] – [DEPRECATION] Encountered positional parameter near line 1, column 95. Posi转载 2014-01-14 09:54:45 · 2597 阅读 · 0 评论 -
Hibernate 马士兵 学习笔记
第1课 课程内容. 6第2课Hibernate UML图. 6第3课 风格. 7第4课 资源. 7第5课 环境准备. 7第6课 第一个示例HibernateHelloWorld 7第7课 建立Annotation版本的HellWorld 9第8课 什么是O/RMapping 11一、 定义:. 11二、 Hib转载 2014-02-28 09:15:36 · 3232 阅读 · 0 评论 -
批量删除
直接贴代码 public void delMulArticle(Integer[] ids) { // TODO Auto-generated method stub String hql="delete from Article where id in (:ids)"; Query q1=getCurrentSession().createQuery(hql).setPa原创 2013-12-11 21:28:25 · 795 阅读 · 0 评论 -
Jstl调用后台数据 解决Hibernate4:could not initialize proxy - no Session
当在jsp上想用jstl调用没有加载的数据,hibernate4的懒加载形式时可以采用这种形式来解决: hibernateFilter org.springframework.orm.hibernate4.support.OpenSessionInViewFilter hibernateFilter /*原创 2014-01-17 16:03:19 · 2042 阅读 · 2 评论