我的currect项目包括Hibernate平台上的JPA2.0、HSQLDB2.0和JBoss5.1。
我还在JBoss中以hmc的名称定义了数据源。
Persistence.xml看起来像:<persistence-unit name=HMC><jta-data-source>java:/hmc</jta-data-source>...</persistence-unit>
有人能让我知道吗
我对如何启动事务来持久化实体感到有点困惑。
每当运行select查询时,EntityManager都能工作,但不适用于持久化数据。
我试过了
IllegalStateException : A JTA EntityManager cannot use getTransaction()异常。致以敬意,
萨蒂亚
发布于 2011-03-22 17:33:10
对于JTA和非JTA之间的差异,可以参考这篇文章。
有关如何在JTA模式下访问JDBC连接,可以参考这篇文章。
对于EntityManager,它抛出了IllegalStateException : JTA EntityManager不能使用getTransaction()异常。
我认为发生此错误是因为容器是管理您的事务的容器,而不是您(否则它将是一个非jta,您将使用应用程序管理的实体管理器)。
您不能访问事务的原因是您可以调用提交或其他应该由Java容器执行的方法。
通过查找数据源并能够获得连接对象,但无法从该javax.sql.Connection对象启动事务。
我认为这已经很好了,因为您已经可以从数据源获得连接,这是一种干净的方法。我不认为您需要担心这里的事务,因为它已经由您正在使用的Java容器管理。那么,为什么不直接用连接来做这些事情呢?:-)
发布于 2012-06-18 23:08:51
嗯..。那批处理呢。我们很有限!
http://docs.jboss.org/hibernate/orm/4.0/hem/en-US/html/batch.html
我需要会议,我需要交易。
https://stackoverflow.com/questions/5062671
复制相似问题