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

标签 java mysql hibernate jpa

我在我的应用程序、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 的开箱即用解决方案

http://projects.spring.io/spring-data/

关于java - 如何在使用 JTA 实体管理器时插入一些数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20305798/

相关文章:

java - 构建单独的 Java 类层次结构

java - 从命令行调试java jar 文件?

PHP API脚本两次插入MySQL数据库

mysql - 从大表中删除大量记录的有效方法

java - 在同一项目中切换 MongoDB 和 JPA (Postgres)

java - 带有 if then 语句的 jdbc 结果集

java - 通过 Collections.synchronizedSet(...).forEach() 进行的迭代是否保证是线程安全的?

mysql - 相当于 MySQL 中 Oracle 的 RowID

mysql - 如何在 MySQL 中的分组列中进行搜索? (如果可能,也在 Hibernate 中)

java - 使用注释@Loader 和@NamedQuery Hibernate 加载集合