У меня очень странная проблема, с которой я никогда не сталкивался.У меня есть несколько методов в 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)
, есть ли способ проверить состояние текущей транзакции