Problem on Resin CMP

I encounter some problems while using resin CMP. I find that when I get a object and update the value of attribute, resin don't really update it, instead it produce a new record This violate the primary key constraint of my database so error occurs: Exception while try to update invoice: com.caucho.ejb.EJBExceptionWrapper: com.caucho.transaction.RollbackExceptionWrapper: com.caucho.ejb.EJBExceptionWrapper: com.sybase.jdbc2.jdbc.SybSQLException: Attempt to insert duplicate key row in object 'invoice_items' with unique index 'invoice_it_14011080821'

My method of update data is simple, it is just the following codes: myInvoiceItem = invoiceItemHome.findByJobNumberAndTarget(invoice_jobNo, invoice_target); myInvoiceItem.setPrice(to_supplier);