- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将使用数据库和 JMS 队列,因此我决定使用 JTATransactionManager(多个资源)。
我正在使用 Spring Framework 3.2.3.RELEASE
Hibernate 4.2.1.Final
Glassfish 3.1.2.2
使用 JTATransactionManager 时,不会向数据库提交任何内容。我尝试了 JPATransactionManager,它工作正常。我使用 JTATransactionManager 没有遇到任何异常。知道我做错了什么吗?谢谢。
这是一段jpa配置文件
<jee:jndi-lookup id="dataSource" jndi-name="Test" />
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
p:packagesToScan="com.pinkshield.jpaTest.domain"
p:dataSource-ref="dataSource"
p:jpaPropertyMap-ref="jpaPropertyMap"
p:jpaVendorAdapter-ref="hibernateVendor" />
<util:map id="jpaPropertyMap">
<entry key="hibernate.hbm2ddl.auto" value="validate" />
<entry key="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect" />
<entry key="transaction.factory_class" value="org.hibernate.transaction.JTATransactionFactory" />
<entry key="transaction.manager_lookup_class"
value="org.hibernate.transaction.SunONETransactionManagerLookup" />
</util:map>
<bean id="hibernateVendor"
class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"
p:showSql="true" />
<tx:jta-transaction-manager />
<context:component-scan base-package="com.pinkshield.jpaTest" />
这是我的 JPA 通用 Dao
package com.pinkshield.jpaTest;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
public class GenericDaoJpa<T> implements GenericDao<T>
{
private Class<T> queryClass;
protected EntityManager entityManager;
@PersistenceContext
public void setEntityManager(EntityManager entityManager)
{
this.entityManager = entityManager;
}
public GenericDaoJpa(Class<T> queryClass)
{
super();
this.queryClass = queryClass;
}
public T getNewInstance()
{
try
{
return getQueryClass().newInstance();
}
catch (InstantiationException e)
{
throw new RuntimeException("Error creating new instance of : " + getQueryClass().getName(), e);
}
catch (IllegalAccessException e)
{
throw new RuntimeException("Error creating new instance of : " + getQueryClass().getName(), e);
}
}
public Class<T> getQueryClass()
{
return queryClass;
}
public T get(Long id)
{
if (id == null)
{
return null;
}
else
{
return entityManager.find(queryClass, id);
}
}
@SuppressWarnings("unchecked")
public List<T> getAll()
{
return entityManager.createQuery("select o from " + queryClass.getName() + " o").getResultList();
}
public void save(T object)
{
entityManager.persist(object);
}
public void update(T object)
{
entityManager.merge(object);
}
public void delete(T object)
{
entityManager.remove(entityManager.merge(object));
}
}
这是 UserDao
@Repository
public class UserDao extends GenericDaoJpa<User>
{
public UserDao()
{
super(User.class);
}
}
这是我的服务代码
@Service
public class UserServiceImpl implements IUserService{
@Autowired UserDao userDao;
@Override
@Transactional
public void saveUser(String name, String lastName)
{
User user=new User();
user.setLastName(lastName);
user.setName(name);
userDao.save(user);
}
}
最佳答案
我认为你需要添加<tx:annotation-driven/>
到上下文 xml。这将运行一个上下文后处理器,它将使用 @Transactional
包装方法。使用 AOP 方法拦截器来提供您正在寻找的事务行为。
关于spring - JTATransactionManager 未提交到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16839649/
我将使用数据库和 JMS 队列,因此我决定使用 JTATransactionManager(多个资源)。 我正在使用 Spring Framework 3.2.3.RELEASE Hibernate
我正在使用多个数据库进行设置,技术堆栈的 spring 和 hibernate 在 tomcat 6 上运行。跨数据库的事务不是必需的,每个数据库都有自己的数据源、sessionFactory 和 t
我想知道 Spring 如何为给定的带注释的事务申请资源。假设我有 3 个启用 XA 的数据源 D1、D2 和 D3。有时事务可能发生在 D1 和 D2 之间,有时可能发生在 D2 和 D3 之间,有
我正在寻找一种通过 Spring/JTA 将两个数据源的 CRUD 放入一个事务中的方法,但有以下问题: 数据源由org.apache.commons.dbcp.BasicDataSource而不是J
我在 Tomcat7 中使用 spring3 和 Hibernate4。 我必须使用 JTATransactionManager 并且我有以下配置。 在上面的配置中,java:com
我正在使用 Spring Data JPA (SDJ),在我的集成测试期间,我遇到了一个奇怪的情况——我可能错误地配置了一些东西,但我看不到那可能是什么。 简而言之 - SDJ 似乎根本无法调用 Sp
更新: 我正在使用 Bitronix TM 对其进行测试,它可以完美回滚,因此问题出在 JBoss TM (arjuna) 或我的配置中。 更新 2: 看起来事务不是全局的,我尝试了不同的数据源,Bi
我需要管理我的应用程序中的多个资源,例如 jms 和 database 在查看可以管理多个资源的事务管理器时,我遇到了 2 个事务管理器 JtaTransactionManager 和 Chained
我正在开发一个使用 Spring Integration 框架和atomikos 进行分布式事务构建的项目。最近,我们一直在尝试运行集成测试,以验证消息是否正确通过我们的系统发送。在执行其中一项集成测
Spring JtaTransactionManager 和 HibernateTransactionManager 之间有什么区别,何时在我的应用程序中使用它们?我知道 HibernateTrans
我想集成 Spring 和 Hibernate 并使用 JTA 来管理事务。我还想将事务处理委托(delegate)给 App 服务器,在我的例子中是 JBoss。我对 Spring 中“transa
我正在使用 Spring 并与 hibernate 4 集成作为持久化提供程序,这里我尝试的是进行增删改查操作关于学生实体, 我的所有选择操作都工作正常,但添加和更新操作不起作用, 我的 persis
我需要使用org.springframework.transaction.jta.JtaTransactionManager作为SpringService中的TransactionManager。但是
我正在尝试将 JtaTransactionManager 与 Spring Batch 一起使用。 transactionManager 是依赖项目中已经定义好的 Jta 事务管理器。 这是我的 Sp
我是一名优秀的程序员,十分优秀!