Java 事务TransactionImple ActionStatus.ABORTED已回滚

Java 事务TransactionImple ActionStatus.ABORTED已回滚,java,hibernate,jboss,ejb-3.0,Java,Hibernate,Jboss,Ejb 3.0,我实现了从TomEE到JBoss的DTO业务迁移 我有这个实体: @NamedQueries({ @NamedQuery(name = "common.plagebusiness.plage.getAllPlages", query = "SELECT p FROM Plage p ORDER BY p.plageRgMax, p.plageCReseau") }) @Entity @Table(name = "PLAGE") public class Plage { @Id

我实现了从TomEE到JBoss的DTO业务迁移

我有这个实体:

@NamedQueries({
@NamedQuery(name = "common.plagebusiness.plage.getAllPlages", query = "SELECT p FROM Plage p ORDER BY p.plageRgMax, p.plageCReseau") })
@Entity
@Table(name = "PLAGE")
public class Plage {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "idPlage")
    private Integer idPlage;

    @Column(name = "rgMin")
    private String plageRgMin;
使用此界面:

@Local
public interface PlagePersistenceManager {

public void importPlages(List<DetailFH55> listeEnregDetail) throws PlageBusinessException, ParseException;

}
我试图在persist(plage)之后加上flush()和clear(),但仍然是相同的异常

final Plage plage = this.convertEnregDetailToPersist(myEnreg);
                this.em.persist(plage);
                this.em.flush();
                this.em.clear();

Thxs.

我注意到您使用的是
org.jboss.annotation.ejb.TransactionTimeout
而不是:

在POM中,尝试将引用当前
TransactionTimeout
的依赖项替换为以下依赖项:

<dependency>
    <groupId>org.jboss.ejb3</groupId>
    <artifactId>jboss-ejb3-ext-api</artifactId>
    <version>2.2.0.Final</version>
    <scope>provided</scope>
</dependency>

你可以在JBoss的论坛上找到一个新的方法。

这个
deleteAllPages()方法做什么?可能是那里的事务被中断了…@metlos我添加了这个方法deleteAllPlages@aribeiro我注释掉了函数deleteAllPages,它的结果是相同的,例外是JBoss的哪个版本?仅供参考-检查。它没有针对您的用例的任何规则,但将来可能会有。特别是如果您决定捐款:)
@org.jboss.annotation.ejb.TransactionTimeout(10000000) 
public void importPlages(final List<DetailFH55> listeEnregDetail) throws PlageBusinessException, ParseException  
@Override
public int deleteAllPlages() throws PlageBusinessException {
    final Query query = this.em.createNativeQuery("DELETE FROM `PLAGE`");
    return query.executeUpdate();
}
final Plage plage = this.convertEnregDetailToPersist(myEnreg);
                this.em.persist(plage);
                this.em.flush();
                this.em.clear();
<dependency>
    <groupId>org.jboss.ejb3</groupId>
    <artifactId>jboss-ejb3-ext-api</artifactId>
    <version>2.2.0.Final</version>
    <scope>provided</scope>
</dependency>
@TransactionTimeout(value = 10, unit = TimeUnit.SECONDS).