[jboss-user] [EJB 3.0] - merge() behavior - is that correct?
tarcio
do-not-reply at jboss.com
Tue May 15 19:47:27 EDT 2007
Hi there,
I'm new to EJB3 and not sure if the behavior is correct or not.
I have a stateless session bean that searches for an Entity bean and returns the found object to the client:
FIRST SESSION BEAN
|
| public DestructionBin findDestructionBin(long id) {
| return manager.find(DestructionBin.class, id);
| }
|
The client is a struts application. The returned entity is assigned to an ActionForm and is then changed on a webpage. Once the form is submitted I get this modified entity and call an update method on another stateless session bean.
STRUTS ACTION PROCESSING...
|
| public ActionForward saveData(ActionMapping mapping, ActionForm form,
| HttpServletRequest request, HttpServletResponse response) {
| EditBinForm formObj = (EditBinForm) form;
|
| try {
| ManageDestructionBin mngBins = (ManageDestructionBin) GeneralWebUtil.getJNDIObject(ManageDestructionBinBean.JNDILocal, ManageDestructionBin.class);
|
| if (formObj.getId() > 0)
| mngBins.updateDestructionBin(formObj.getBin(), formObj
| .getWarehouse());
| ...
|
| SECOND SESSION BEAN
|
| public boolean updateDestructionBin(DestructionBin bin, long warehouse)
| throws WarehouseException {
| try {
| Warehouse wh = mngWarehouse.findWarehouse(warehouse);
| bin.setWarehouse(wh);
| manager.merge(bin);
| } catch (Exception e) {
| throw new WarehouseException(e.getMessage());
| }
|
| return true;
| }
|
However, when the merge is called.. this is the stacktrace I get from EJB server:
| 09:43:51,941 WARN [JDBCExceptionReporter] SQL Error: 0, SQLState: null
| 09:43:51,941 ERROR [JDBCExceptionReporter] Batch entry 0 update TBL_DESTRUCTION_BIN set LASTUPDATE_=2007-05-16 09:43:51.809000 +1000, STATUS_=NULL, CLIENTREF_=VIC71234560, ACCESSCOUNT_=0, CREATEDBY_=NULL, BARCODE_=NULL, CREATEDATE_=NULL, LASTACCESSED_=NULL, PRINTED_=0, TYPE_=ST, SIZE_=1L, WAREHOUSE_=2, DEPARTMENT_=NULL, BUSINESSDAY_=0, COLLECTIONDATE_=NULL, DELIVERYDATE_=NULL, ROTATIONSCHEDULE_=NULL where ID_=4 was aborted. Call getNextException to see the cause.
| 09:43:51,942 WARN [JDBCExceptionReporter] SQL Error: 0, SQLState: 23502
| 09:43:51,942 ERROR [JDBCExceptionReporter] ERROR: null value in column "status_" violates not-null constraint
| 09:43:51,942 ERROR [AbstractFlushingEventListener] Could not synchronize database state with session
| org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
|
Could anyone please tell me if this is the correct behavior? It's quite annoying to find the object again and just change the updated fields.. and I also don't think this is the solution for it ehehehehe
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4045992#4045992
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4045992
More information about the jboss-user
mailing list