OpenJPA сообщает, что текущая транзакция внутри метода аннотирована @Transactional - PullRequest
0 голосов
/ 19 июня 2019

У меня очень странная проблема, с которой я никогда не сталкивался.У меня есть несколько методов в JSF, которые помечены @Transactional.Но когда я вызываю функцию fileDb.flush () в приведенном ниже примере

@Transactional
public String toggleHide() {
    fileBean.setFile(fileDb.updateFile(fileBean.getFile()));
    if (getEvent().getSubType().equals("note")) {
        // note
        for (Note note : fileBean.getFile().getNotes()) {
            if (note.getId() == getEvent().getEventId()) {
                note.setHide(opposite(getEvent().isHidden()));
                fileDb.flush();
                break;
            }
        }
    }
}

, я получаю следующую ошибку

<openjpa-2.4.3-r422266:1833086 nonfatal user error> org.apache.openjpa.persistence.TransactionRequiredException: Can only perform operation while a transaction is active.
at org.apache.openjpa.kernel.BrokerImpl.assertActiveTransaction(BrokerImpl.java:4729)
at org.apache.openjpa.kernel.DelegatingBroker.assertActiveTransaction(DelegatingBroker.java:1385)
at org.apache.openjpa.persistence.EntityManagerImpl.flush(EntityManagerImpl.java:663)
at org.apache.webbeans.custom.persistence.EntityManager$$OwbNormalScopeProxy0.flush(javax/persistence/EntityManager.java)
at uk.me.kissy.database.db.file.FileDb.flush(FileDb.java:379)
at uk.me.kissy.database.db.file.FileDb$$OwbNormalScopeProxy0.flush(uk/me/kissy/database/db/file/FileDb.java)
at uk.me.kissy.file.beans.EventsBean.toggleHide(EventsBean.java:117)

, есть ли способ проверить состояние текущей транзакции

...