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);
}
Author: Nicolas Chabanovsky, 2011-03-06

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.

 1
Author: Anton Mukhin, 2011-03-06 15:09:50