在payara 3.1.2 eclipselink 2.3.4中解包JTA连接为空

时间:2019-05-09 13:09:41

标签: java eclipselink payara

我正在上述应用服务器上的一个非常旧的旧系统上工作。

下面的delete语句正在正确执行,但是在特定环境下,未包装的连接为空。

我已经在连接良好的单实例开发服务器上测试了以下代码。

在集成环境中,返回的连接始终为空。
有没有人有一个好的策略来尝试确保连接不为空。

以下方法由带有@TransactionAttribute(REQUIRES_NEW)的外部方法调用。下面的属性是出于绝望而添加的,但似乎仍然没有作用。

显然存在事务,因为其他方法的所有语句都被调用,并且下面的删除看起来都可以。在unwrap时失败了。

@Stateless
public class Repository {

    @TransactionAttribute
    public void addOrdersToFile(PimaTaisFileBE file) throws SQLException {

        int affected = em.createQuery("DELETE FROM PimaTaisRequestIndexFileBE rf WHERE rf.pimaTaisFile = :file")
                .setParameter("file", file)
                .executeUpdate();

        Connection connection = em.unwrap(Connection.class);
        if (connection == null)
            throw new IllegalStateException("connection == null after unwrap in addPimaOrdersToFile");

0 个答案:

没有答案