该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2005-04-18
偶发现:
1. 避免使用双向一对多(one-to-many)关系,可以避免过多的表连接,同时避免POJO受到污染; 2. 设计良好domain层,可以进一步挖掘Hibernate的优点并使性能影响降至最小; 第一次发帖,大家多多关照。哈哈~ |
|
返回顶楼 | |
发表时间:2005-04-18
session以request为边界,用spring opensessioninview filter+HibernateTemplate实现(其实就是ThreadLocal+ServletFilter)
transaction以service(不是DAO)为边界(如果一个service method里面需要有两段事务的话,就分成两个service method),用spring aop声明事务实现 另DAO可看实际情况考虑省去,代码迁移到service 你们肯定很少翻hibernate.org http://www.hibernate.org/168.html 这里提到session和transaction的若干处理方法,介绍他们的优缺点,哪些不能用等等 我个人比较喜欢session-per-request-with-multiple-transactions 就是我上面所说的 另外还有两个application transaction做long Session的,大致就是之前断断续续讨论的detached objects、saveOrUpdate、hibernate version、httpsession保存po等等等等,用spring mvc可以实现,不过似乎这种做法目前接受度不高 |
|
返回顶楼 | |
发表时间:2005-04-18
hjmin 写道 我们的框架就是在业务逻辑层关闭session的,我一定都不太明白,我都觉得应该在DAO关闭session。
不能这样做,如果一业务用到多过DAO,问题就出现了。 |
|
返回顶楼 | |