实体对象的三种状态
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 ...
- 浏览: 105527 次
- 性别:

- 来自: 北京

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
getElementById与getEleme ...
引用[u][/u][i][/i] 3.getElementsByTag ...
-- by oliavn -
getElementById与getEleme ...
1
-- by oliavn -
(转)从Coding Fan到真正 ...
几项?不知楼主定义自
-- by luven -
JfreeChart学习总结
...
-- by luven -
JfreeChart学习总结
dsdsdsds[b][/b]
-- by luven






评论排行榜