论坛首页 Java版 Hibernate

Session EJB集成Hibernate提问?

浏览 6840 次
精华帖 (1) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2004-12-06
我们系统原先采用SessionEjb+CMP的架构,现在准备将CMP用Hibernate来替换,这其中Session的管理该如何设计?
   
最后更新时间:2004-12-06
在SessionBean的setSessionContext方法里面lookup Hibernate SessionFactory。在每个remote interface实现方法里面openSession,操作,close Session。
   
0 请登录后投票
最后更新时间:2004-12-06
那每个business method都会调用setSessionContext方法,都要去lookup factory,factory只要lookup一次就好了吧?在setSessionContext里面open session不好吗?
   
0 请登录后投票
最后更新时间:2004-12-06
ggking 写道
那每个business method都会调用setSessionContext方法,都要去lookup factory,factory只要lookup一次就好了吧?在setSessionContext里面open session不好吗?


老弟,你用过EJB吗?如果没有的话,学习一下先。
   
0 请登录后投票
最后更新时间:2004-12-06
重新读过masterehb2,我理解错了...
   
0 请登录后投票
最后更新时间:2004-12-07
我在business method里面
getSession
beginTransaction
do
commitTransaction
当我commit时报错,tried to commit connection in global tran.
后来我把hibernate.cfg.xml里面增多
<property name="transaction.factory_class">net.sf.hibernate.transaction.JTATransactionFactory</property>
        <property name="transaction.manager_lookup_class ">net.sf.hibernate.transaction.WebSphereTransactionManagerLookup</property>
       
        <property name="jta.UserTransaction">java:comp/UserTransaction</property>
  再运行时会说Could not find UserTransaction in JNDI
不知道webshphere下默认的usertransaction的jndi是什么?
   
0 请登录后投票
最后更新时间:2004-12-07
你应该好好看看精华文章
   
0 请登录后投票
最后更新时间:2004-12-07
usertransaction的jndi name应该是jta/usertransaction,可改成这个没有什么报错了,但commit好像没有生效,db里面数据都没有改变啊!

再次调用该ejb的business方法时,session里load的数据也恢复成修改前的样子。
   
0 请登录后投票
最后更新时间:2004-12-08
仔细看了精华版的文章,总算搞定了,hibernate里面动态构建sql的时候,也可以实现ibatis那样的灵活可配置性吗?hibernate里面的条件语句不能根据参数是否为null而自动判断该不该生成吧?
   
0 请登录后投票
最后更新时间:2004-12-08
ggking 写道
仔细看了精华版的文章,总算搞定了,hibernate里面动态构建sql的时候,也可以实现ibatis那样的灵活可配置性吗?hibernate里面的条件语句不能根据参数是否为null而自动判断该不该生成吧?


实际上我并不觉得ibatis的那种可配置式的动态条件SQL是最好的方案。ibatis是基于配置文件映射SQL的,所以他必须在配置文件里面配置动态条件SQL。因为条件本身的不确定性,所以非要在配置文件里面配置动态条件,会把配置文件搞得比较复杂。

Hibernate中,你可以用Criteria by Example的方式来达到你的要求。
   
0 请登录后投票
论坛首页 Java版 Hibernate

跳转论坛:
JavaEye推荐