@TransactionalEventListener
public void onClientChangedAfterCommit(EntityChangedEvent<Client> event) {
try {
uiEventPublisher.publishEvent(new ClientChangedEvent(event.getSource()));
} catch (Exception e) {
log.error("Error handling Client changes after commit", e);
} }
Really provide me with error in log:
javax.persistence.TransactionRequiredException:
Exception Description: No transaction is currently active
at org.eclipse.persistence.internal.jpa.transaction.EntityTransactionWrapper.throwCheckTransactionFailedException(EntityTransactionWrapper.java:89) ~[org.eclipse.persistence.jpa-2.7.9-6-jmix.jar:na]
at org.eclipse.persistence.internal.jpa.transaction.EntityTransactionWrapper.checkForTransaction(EntityTransactionWrapper.java:52) ~[org.eclipse.persistence.jpa-2.7.9-6-jmix.jar:na]
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.checkForTransaction(EntityManagerImpl.java:2200) ~[org.eclipse.persistence.jpa-2.7.9-6-jmix.jar:na]
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.flush(EntityManagerImpl.java:979) ~[org.eclipse.persistence.jpa-2.7.9-6-jmix.jar:na]
at io.jmix.eclipselink.impl.EclipselinkPersistenceSupport$ContainerResourceSynchronization.detachAll(EclipselinkPersistenceSupport.java:599) ~[jmix-eclipselink-1.4.4.jar:na]
at io.jmix.eclipselink.impl.EclipselinkPersistenceSupport$ContainerResourceSynchronization.beforeCommit(EclipselinkPersistenceSupport.java:554) ~[jmix-eclipselink-1.4.4.jar:na]
at org.springframework.transaction.support.TransactionSynchronizationUtils.triggerBeforeCommit(TransactionSynchronizationUtils.java:97) ~[spring-tx-5.3.24.jar:5.3.24]
at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit(AbstractPlatformTransactionManager.java:916) ~[spring-tx-5.3.24.jar:5.3.24]
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:727) ~[spring-tx-5.3.24.jar:5.3.24]
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:711) ~[spring-tx-5.3.24.jar:5.3.24]
at io.jmix.eclipselink.impl.JpaDataStore.commitTransaction(JpaDataStore.java:395) ~[jmix-eclipselink-1.4.4.jar:na]
at io.jmix.core.datastore.AbstractDataStore.load(AbstractDataStore.java:95) ~[jmix-core-1.4.4.jar:na]
at io.jmix.core.impl.UnconstrainedDataManagerImpl.load(UnconstrainedDataManagerImpl.java:97) ~[jmix-core-1.4.4.jar:na]
at io.jmix.ui.model.impl.InstanceLoaderImpl.load(InstanceLoaderImpl.java:91) ~[jmix-ui-1.4.4.jar:na]
at com.company.test1.screen.client.ClientEdit.onClientChangedEvent(ClientEdit.java:42) ~[main/:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
.....
.....
Similar problem on the forum (@TransactionalEventListener causing error “No transaction is currently active”) give me solution:
@Transactional
@TransactionalEventListener
public void onClientChangedAfterCommit(EntityChangedEvent<Client> event) {
.....
}