Hallo,
ich benutze für Mapping das Hibernate. Nach dem ich versuche aus der Datenbank zu löschen wird mir nach dem Commit eine TransactionException geworfen.
org.hibernate.TransactionException: Transaction not successfully started
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:100)
...
Die Funktion runInRepository wird aus einem anderem Plugin aufgerufen.
public IStatus runInRepository(IRepositoryRunnable runnable, ISchedulingRule rule, IProgressMonitor monitor) {
IStatus status;
jobManager.beginRule(rule, monitor);
Transaction currentTransaction = null;
try {
lock.acquire();
currentTransaction = session.beginTransaction();
try {
status = runnable.run(monitor);
session.flush();
currentTransaction.commit();// hier wird exception geworfen
currentTransaction = null;
} catch(Exception e) {
status = new Status(Status.ERROR, Activator.PLUGIN_ID, 0, "Error running repository task", e); //$NON-NLS-1$
Activator.log(status);
} catch(LinkageError e) {
status = new Status(Status.ERROR, Activator.PLUGIN_ID, 0, "Error running repository task", e); //$NON-NLS-1$
Activator.log(status);
}
} catch (Exception e) {
status = new Status(Status.ERROR, Activator.PLUGIN_ID, 0, "Error running repository task", e); //$NON-NLS-1$
Activator.log(status);
} finally {
if (currentTransaction != null) {
try {
currentTransaction.rollback();
} catch(Exception e1) {
Status status1 = new Status(Status.ERROR, Activator.PLUGIN_ID, 0, "Error rolling back transaction", e1); //$NON-NLS-1$
Activator.log(status1);
}
}
lock.release();
jobManager.endRule(rule);
}
session.clear();
return status;
}
Ich hoffe mir kann jemand helfen!!
Vielen Dank.
Viele Grüsse
ich benutze für Mapping das Hibernate. Nach dem ich versuche aus der Datenbank zu löschen wird mir nach dem Commit eine TransactionException geworfen.
org.hibernate.TransactionException: Transaction not successfully started
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:100)
...
Die Funktion runInRepository wird aus einem anderem Plugin aufgerufen.
public IStatus runInRepository(IRepositoryRunnable runnable, ISchedulingRule rule, IProgressMonitor monitor) {
IStatus status;
jobManager.beginRule(rule, monitor);
Transaction currentTransaction = null;
try {
lock.acquire();
currentTransaction = session.beginTransaction();
try {
status = runnable.run(monitor);
session.flush();
currentTransaction.commit();// hier wird exception geworfen
currentTransaction = null;
} catch(Exception e) {
status = new Status(Status.ERROR, Activator.PLUGIN_ID, 0, "Error running repository task", e); //$NON-NLS-1$
Activator.log(status);
} catch(LinkageError e) {
status = new Status(Status.ERROR, Activator.PLUGIN_ID, 0, "Error running repository task", e); //$NON-NLS-1$
Activator.log(status);
}
} catch (Exception e) {
status = new Status(Status.ERROR, Activator.PLUGIN_ID, 0, "Error running repository task", e); //$NON-NLS-1$
Activator.log(status);
} finally {
if (currentTransaction != null) {
try {
currentTransaction.rollback();
} catch(Exception e1) {
Status status1 = new Status(Status.ERROR, Activator.PLUGIN_ID, 0, "Error rolling back transaction", e1); //$NON-NLS-1$
Activator.log(status1);
}
}
lock.release();
jobManager.endRule(rule);
}
session.clear();
return status;
}
Ich hoffe mir kann jemand helfen!!
Vielen Dank.
Viele Grüsse