相关疑难解决方法(0)

在纯JPA设置中获取数据库连接

我们有一个JPA应用程序(使用hibernate),我们需要调用一个需要JDBC数据库连接作为参数的旧报告工具.是否有一种简单的方法可以访问hibernate设置的JDBC连接?

java orm hibernate jpa jdbc

59
推荐指数
7
解决办法
11万
查看次数

EJB3事务回滚

我在EJB3无状态会话bean中使用CMT.我也创建了自己的Exception,其注释为"@ApplicationException(rollback = true)".

  1. 当我想要回滚事务时,是否必须使用"context.setRollbackOnly()"?

  2. 我可以通过在bean中的public方法中抛出异常来回滚事务吗?

  3. 如果是这样(Q#2的答案是肯定的)我是否必须通过在方法中声明异常来抛出异常,或者仅仅在方法内抛出异常并在同一方法中处理它就足够了本身?(我不想将异常传播到下一个级别.我只想回滚异常.)

提前致谢.;)

java transactions rollback java-ee ejb-3.0

30
推荐指数
1
解决办法
5万
查看次数

使用JTA数据源在JBoss AS 7上配置EJB:提交每个语句

大家好!

我一直试图找到答案一段时间,但我没有管理.

我尝试使用Enterprise Java Bean配置我的应用程序并使其在JBoss Application Server 7.1.1下工作.我的应用程序是Web应用程序,它使用servlet并将其他类作为EJB注入.问题是每个语句都被提交,这意味着不支持任何事务管理.

在我的测试示例中,我有一个带有子集合的实体(使用属性CascadeType.ALL与OneToMany关系映射).如果集合中的记录存在某些问题(例如,不存在的外键),则无法将其插入表中并引发异常.但是,父实体会被插入,因此我假设插入是在不同的单独事务中完成的.这是严格意外的行为,我试图解决它.

技术参数:

DBMS:Oracle EE 11g

AS:JBoss AS 7.1.1

我的persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
   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/">
   <persistence-unit name="OracleEntityManager">
      <jta-data-source>java:jboss/CmaDevDS</jta-data-source>
      <properties>
        <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle9iDialect" />
        <property name="hibernate.hbm2ddl.auto" value="none" />
        <property name="hibernate.jdbc.batch_size" value="20" />
        <property name="hibernate.show_sql" value="true" />
        <property name="hibernate.format_sql" value="true" />
        <property name="hibernate.use_sql_comments" value="true" />
      </properties>
   </persistence-unit>
</persistence>
Run Code Online (Sandbox Code Playgroud)

我的EJB:

@Stateless(name="EntityWriter")
@TransactionManagement(TransactionManagementType.CONTAINER)
public class EntityWriter {

    @Resource
    private SessionContext context;
    /*@Resource
    UserTransaction ut;*/
    @PersistenceContext(unitName = "OracleEntityManager",type=PersistenceContextType.EXTENDED)
    EntityManager …
Run Code Online (Sandbox Code Playgroud)

ejb jpa transactions jta jboss7.x

4
推荐指数
1
解决办法
4949
查看次数

标签 统计

java ×2

jpa ×2

transactions ×2

ejb ×1

ejb-3.0 ×1

hibernate ×1

java-ee ×1

jboss7.x ×1

jdbc ×1

jta ×1

orm ×1

rollback ×1