实体对象的三种状态   1.临时状态 ( transient )----对象刚new创建时,还没被持久化,不处于session缓存中。   2.持久化状态 ( persistent )---已被持久化,加入到session缓存中(调用session的相关方法时)   3.游离状态 ( detached )----已被持久化,但不在处于session的缓存中。   当实体对象被加入到 session 缓存中,就在 session 和实体对象之间建立了一种联系,以后可以从 session 缓存中读取实体对象出来。   ...
  通过看孙卫琴的精通Hibernate和平时自己的使用,对他的几种检索策略有了更深的认识,再次总结一下   问题的引出: Customer和Order的经典一对多场景 Customer表 ID ORDER_NUMBER CUSTOMER_ID ...
总结下配置文件关于hibernate的部分,用apache的dbcp连接池 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> //连接驱动 <property name="driverClassName" value="${jdbc.driverClassName}" /> //连接url, <property name="url" value="${jdbc.url}" /> //连接用户名 &l ...
Hibernate对于一些函数(如extract 、union,oracle数据库)不支持,导致用hql语句实现一些功能很麻烦,所以用了视图, 下面是在oracle数据库上的使用,工具MyEclipse。 1. 建立视图 例如:更加需要,建立视图cash_flow create or replace view cash_flow as select gather_date,description,gahter_sum,group_cn from actual_gather ag where(ag.gahter_sum>0) union all select expense_time,re ...
在Hibernate应用中实现批量操作 最近的一个项目中,作一个查询的时候需求批量更新一下数据,然后在查询。 在Hiberante应用中,这个更新操作 一、session.update(object) 一个方法是,根据条件加载出一个list,如果符合条件的有上万或更多,会加载这么多个对象到sessin缓存中 然后遍历,对每个对象挨个更新。当事务提交是会清理缓存,同时执行上万个update语句 tx = session.beginTransaction(); Iterator objects =session.find("from Project where p.id>0").itera ...
这些操作对经常使用hibernate的同学已经很熟悉了,我也经常用但一些细节并不了解, 最近遇到问题才开始有看了一下。 在读完robbin的这两个精华贴的时候,感觉清晰了很多,确实好文章。 http://www.javaeye.com/topic/2712 http://www.javaeye.com/topic/1604?page=1 还有这个精华贴 http://www.javaeye.com/topic/7484 也很不错。 里面总结的很好了,我结合以上三个帖子、自己的试验(版本hibernate-3.0.5)和Hibernate文档也总结了一点,加深理解。希望对刚开始学Hiber ...