Error when making a transaction
Hello. I use Tomcat OpenEJB. When calling the method em.persist(myObj);
, this error occurs:
Javax.ejb.EJBTransactionRolledbackException: Transaction was rolled back, presumably because setRollbackOnly was called during a synchronization at org.apache.openejb.core.ivm.BaseEjbProxyHandler.convertException (BaseEjbProxyHandler.java:341)
...Caused by: javax.transaction.RollbackException: Unable to commit: transaction marked for rollback at org.apache.geronimo.transaction.manager.TransactionImpl.commit (TransactionImpl.java:271)
...
Can anyone have any ideas on how to help me?
My class looks something like this:
@PersistenceContext(unitName = "todolistUnit", type = PersistenceContextType.TRANSACTION)
private EntityManager em;
public void addTask(String task, Timestamp endDate, Integer categoryId) {
TlTasks tasks = new TlTasks();
tasks.setTask(task);
tasks.setEndTime(endDate);
tasks.setCategoryId(categoryId);
em.persist(tasks);
}
1 answers
The error was in the entity class declaring the table
@javax.persistence.Table(name = "TL_Tasks", schema = "dbo", catalog = "todoListDB")
@Entity
public class TlTasks {
private int id;
@javax.persistence.Column(name = "id", nullable = false, insertable = false, updatable = false, length = 10, precision = 0)
@Id
public int getId() {
return id;
}
In index column property declarations insertable = false, updatable = false was true. At this stage, the error occurred.