栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Hibernate,mysql,glassfish v3和JTA数据源

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Hibernate,mysql,glassfish v3和JTA数据源

在您的配置中,默认情况下使用容器管理的事务。在这种情况下,您需要定义一种事务同步方式,以便通知持久层(例如,可以更新第二级缓存)。因此,您需要

manager_lookup_class
按以下方式定义属性:

// For GlassFish:hibernate.transaction.manager_lookup_class=org.hibernate.transaction.SunONETransactionManagerLookup// For WebSpere:hibernate.transaction.manager_lookup_class=org.hibernate.transaction.WebSphereExtendedJTATransactionLookup// For JBoss:hibernate.transaction.manager_lookup_class=org.hibernate.transaction.JBossTransactionManagerLookup// For OpenEJB:hibernate.transaction.manager_lookup_class=org.apache.openejb.hibernate.TransactionManagerLookup

另外,您还必须将访问数据层的业务方法标记为“事务性”。为此,您需要标记它们

@javax.ejb.TransactionAttribute(REQUIRED)
(有关此注释的更多信息,请参见此处)。

您还可以选择切换到Bean管理的事务。您可以这样说:

hibernate.transaction.factory_class=org.hibernate.transaction.JTATransactionFactory

然后,bean负责开始/结束事务:

org.hibernate.Session session = ...;org.hibernate.Transaction tx = null;try {    tx = session.beginTransaction();    session.createQuery(...); // do some staff    tx.commit();} catch (HibernateException e){    if (tx != null) {        tx.rollback();    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/435926.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号