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);
<query> <query-method> <method-name>findByJobNumberAndTarget</method-name> <method-params> <method-param>java.lang.String</method-param> <method-param>java.lang.String</method-param> </method-params> </query-method> <ejb-ql> <![CDATA[ SELECT o FROM invoiceItems o WHERE UPPER(o.jobNumber) LIKE UPPER(?1) AND UPPER(o.invoiceTarget) LIKE UPPER(?2) ]]> </ejb-ql> </query>
I really don't know what is the problem. Can anyone help me?