Java 如何在使用JTA实体管理器时插入一些数据

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"

我使用JBoss7.1作为我的应用程序,JPA、Hibernate和MySql DB,我配置好了所有东西,我的程序从DB正常获取数据。问题是当我尝试插入一些数据时。我发现JTA EntityManager不能使用get事务是正常的,所以我的问题是如何将一些数据插入数据库?我不知道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>
正如我所说,它返回: 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();