我在我的应用程序、JPA、Hibernate 和 MySql DB 中使用 JBoss 7.1 AS,我配置得很好,我的程序正在从数据库正常获取数据。问题是当我尝试插入一些数据时。我发现 JTA EntityManager 无法使用 get Transaction 是正常的,所以我的问题是如何将一些数据插入到我的数据库中?不知道 Spring 是如何工作的,所以请不要向我指出这一点,除非它很简单。
我的坚持现在看起来是这样的:
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="EngineProject" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:jboss/datasources/MySqlDS</jta-data-source>
<class>org.itdevelopment.DAO.User</class>
<properties>
<property name="hibernate.show.sql" value="true" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.hbm2ddl.auto" value="create" />
</properties>
</persistence-unit>
我想做的就是简单地在 ManagedBean、User 类、一个方法中插入一些数据:
em.getTransaction().begin();
User employee = new User();
employee.setId(23);
employee.setCompany("Coca cola");;
employee.setLogin("James");
em.persist(employee);
em.getTransaction().commit();
正如我所说,它返回: JTA EntityManager 无法使用 getTransaction() 那么我怎样才能插入一些东西呢?
谢谢。 中号
最佳答案
如果你想使用Spring框架,那么你需要正确配置Spring容器。请在此处提供 spring 配置和 DAO 类内容。
这里是如何正确执行此操作的链接
http://docs.spring.io/spring/docs/3.0.x/reference/orm.html#orm-hibernate
在常见情况下,您只需要
1.正确配置spring和hibernate 2.使用必需的修饰符将DAO方法标记为@Transactional
另请参阅 Spring Data 项目,它具有针对 Hibernate 的开箱即用解决方案
关于java - 如何在使用 JTA 实体管理器时插入一些数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20305798/