Java 如何在使用JTA实体管理器时插入一些数据
我使用JBoss7.1作为我的应用程序,JPA、Hibernate和MySql DB,我配置好了所有东西,我的程序从DB正常获取数据。问题是当我尝试插入一些数据时。我发现JTA EntityManager不能使用get事务是正常的,所以我的问题是如何将一些数据插入数据库?我不知道Spring是如何工作的,所以请不要告诉我,除非它很简单 我的坚持现在看起来是这样的:Java 如何在使用JTA实体管理器时插入一些数据,java,mysql,hibernate,jpa,Java,Mysql,Hibernate,Jpa,我使用JBoss7.1作为我的应用程序,JPA、Hibernate和MySql DB,我配置好了所有东西,我的程序从DB正常获取数据。问题是当我尝试插入一些数据时。我发现JTA EntityManager不能使用get事务是正常的,所以我的问题是如何将一些数据插入数据库?我不知道Spring是如何工作的,所以请不要告诉我,除非它很简单 我的坚持现在看起来是这样的: <persistence xmlns="http://java.sun.com/xml/ns/persistence"
<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>
正如我所说,它返回:
JTA EntityManager不能使用getTransaction()
那么我怎样才能插入一些东西呢
多谢各位。
M如果要使用Spring框架,则需要正确配置Spring容器。请在这里提供spring配置和DAO类内容 下面是一个如何正确执行此操作的链接 通常情况下,你只需要 1.正确配置spring和hibernate 2.使用必需的修饰符将DAO方法标记为@Transactional 还可以看看Spring数据项目,它为Hibernate提供了现成的解决方案
您正在使用JTA在一个完整堆栈的JavaEE容器中运行。本机支持声明性事务。只需将您的组件设置为无状态会话bean,就可以进行事务处理,而无需显式地启动提交和回滚事务。他不用弹簧,也不需要。
em.getTransaction().begin();
User employee = new User();
employee.setId(23);
employee.setCompany("Coca cola");;
employee.setLogin("James");
em.persist(employee);
em.getTransaction().commit();