Overview:
I populate the various HbmXXX record objects and then call .save() as appropriate. Eventally, if all is well, I call .commit which then gets an error that two fields are missing field values. Trouble is, those fields have values when I call .save(). Logic is also below.
Hibernate version: 3
Mapping documents:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping default-cascade="none" default-access="property" auto-import="true">
<class name="us.tx.state.oag.WfPersonnelAction.hbm.HbmWfPaActionBatchTable" table="info_wf_action_batch">
<id name="BatchId" column="batch_id" type="big_decimal">
<generator class="us.tx.state.oag.WfPersonnelAction.hbm.HbmWfPaNextBatchId">
<param name="JndiDbName">java:/workflows</param>
<param name="DbFieldName">next_action_batch_id</param>
</generator>
</id>
<!--
<many-to-one name="ActionStatusId" column="action_status_id" cascade="all" not-null="true" update="false" insert="false"
class="us.tx.state.oag.WfPersonnelAction.hbm.HbmWfPaCodeActionStatusTable"/>
<many-to-one name="ActionSubstatusId" column="action_substatus_id" cascade="all" not-null="true" update="false" insert="false"
class="us.tx.state.oag.WfPersonnelAction.hbm.HbmWfPaCodeActionSubstatusTable"/>
-->
<property name="BusinessUnit" column="business_unit" type="string" update="true" insert="true"/>
<property name="CreationDate" column="creation_date" type="timestamp" update="true" insert="true"/>
<property name="DesiredEffectiveDate" column="desired_effective_date" type="timestamp" update="true" insert="true"/>
<property name="EffectiveDate" column="effective_date" type="timestamp" update="true" insert="true"/>
<property name="PortalWorkflowId" column="portal_workflow_id" type="string" update="true" insert="true"/>
<property name="WorkflowId" column="workflow_id" type="big_decimal" update="true" insert="true"/>
<property name="CreatedWho" column="cr_who" type="string" update="true" insert="true"/>
<property name="CreatedWhen" column="cr_when" type="timestamp" update="true" insert="true"/>
<property name="UpdatedWho" column="up_who" type="string" update="true" insert="true"/>
<property name="UpdatedWhen" column="up_when" type="timestamp" update="true" insert="true"/>
</class>
</hibernate-mapping>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping default-cascade="none" default-access="property" auto-import="true">
<class name="us.tx.state.oag.WfPersonnelAction.hbm.HbmWfPaActionTable" table="info_wf_action">
<composite-id>
<key-property name="BatchId" column="batch_id" type="big_decimal"/>
<key-property name="ActionId" column="action_id" type="big_decimal"/>
</composite-id>
<property name="ActionTypeId" column="action_type_id" type="big_decimal" update="true" insert="true"/>
<property name="ActionTypeDesc" column="action_type_desc" type="string" update="true" insert="true"/>
<property name="Comments" column="comments" type="string" update="true" insert="true"/>
<property name="CreatedWho" column="cr_who" type="string" update="true" insert="true"/>
<property name="CreatedWhen" column="cr_when" type="timestamp" update="true" insert="true"/>
<property name="UpdatedWho" column="up_who" type="string" update="true" insert="true"/>
<property name="UpdatedWhen" column="up_when" type="timestamp" update="true" insert="true"/>
<!--
<many-to-one name="BatchId" column="batch_id" cascade="all" not-null="true" update="false" insert="false"
class="us.tx.state.oag.WfPersonnelAction.hbm.HbmWfPaActionBatchTable"/>
-->
</class>
</hibernate-mapping>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping default-cascade="none" default-access="property" auto-import="true">
<class name="us.tx.state.oag.WfPersonnelAction.hbm.HbmWfPaEmployeeTable" table="info_wf_action_employee">
<composite-id>
<key-property name="BatchId" column="batch_id" type="big_decimal"/>
<key-property name="ActionId" column="action_id" type="big_decimal"/>
</composite-id>
<property name="EmpDeptId" column="emp_deptid" type="string" update="true" insert="true"/>
<property name="EmpDeptName" column="emp_dept_name" type="string" update="true" insert="true"/>
<property name="EmpEmail" column="emp_email" type="string" update="true" insert="true"/>
<property name="EmpEmplId" column="emplid" type="string" update="true" insert="true"/>
<property name="EmpNameFirst" column="emp_name_first" type="string" update="true" insert="true"/>
<property name="EmpNameLast" column="emp_name_last" type="string" update="true" insert="true"/>
<property name="EmpNameFirstPreferred" column="emp_name_preferred" type="string" update="true" insert="true"/>
<property name="EmpPhoneWork" column="phone_work" type="string" update="true" insert="true"/>
<property name="EmpSsn" column="ssn" type="string" update="true" insert="true"/>
<property name="LastEvalDate" column="last_eval_date" type="timestamp" update="true" insert="true"/>
<property name="LastHireDate" column="last_hire_date" type="timestamp" update="true" insert="true"/>
<property name="LastPromoDate" column="last_promotion_date" type="timestamp" update="true" insert="true"/>
<property name="LastWorkDate" column="last_work_date" type="timestamp" update="true" insert="true"/>
<property name="LwopStartDate" column="lwop_start_date" type="timestamp" update="true" insert="true"/>
<property name="LwopEndDate" column="lwop_end_date" type="timestamp" update="true" insert="true"/>
<property name="MailCode" column="mail_code" type="string" update="true" insert="true"/>
<property name="MgrDeptId" column="deptid" type="string" update="true" insert="true"/>
<property name="MgrDeptName" column="mgr_dept_name" type="string" update="true" insert="true"/>
<property name="MgrEmail" column="mgr_email" type="string" update="true" insert="true"/>
<property name="MgrEmplId" column="mgr_emplid" type="string" update="true" insert="true"/>
<property name="MgrNameFirst" column="mgr_name_first" type="string" update="true" insert="true"/>
<property name="MgrNameLast" column="mgr_name_last" type="string" update="true" insert="true"/>
<property name="MgrNameFirstPreferred" column="mgr_name_preferred" type="string" update="true" insert="true"/>
<property name="MgrPhoneWork" column="mgr_phone_work" type="string" update="true" insert="true"/>
<property name="TerminationDate" column="termination_date" type="timestamp" update="true" insert="true"/>
<property name="CreatedWho" column="cr_who" type="string" update="true" insert="true"/>
<property name="CreatedWhen" column="cr_when" type="timestamp" update="true" insert="true"/>
<property name="UpdatedWho" column="up_who" type="string" update="true" insert="true"/>
<property name="UpdatedWhen" column="up_when" type="timestamp" update="true" insert="true"/>
<!--
<many-to-one name="ActionId" not-null="true" update="false" insert="false"
class="us.tx.state.oag.WfPersonnelAction.hbm.HbmWfPaActionTable">
<column name="BatchId"/>
<column name="ActionId"/>
</many-to-one>
-->
</class>
</hibernate-mapping>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping default-cascade="none" default-access="property" auto-import="true">
<class name="us.tx.state.oag.WfPersonnelAction.hbm.HbmWfPaPositionTable" table="info_wf_action_position">
<composite-id>
<key-property name="BatchId" column="batch_id" type="big_decimal"/>
<key-property name="ActionId" column="action_id" type="big_decimal"/>
</composite-id>
<property name="ToBusinessUnit" column="to_business_unit" type="string" update="true" insert="true"/>
<property name="ToBudgetAmendment" column="to_budget_amendment" type="string" update="true" insert="true"/>
<property name="ToClassNumber" column="to_class_number" type="string" update="true" insert="true"/>
<property name="ToClassTitle" column="to_class_title" type="string" update="true" insert="true"/>
<property name="ToEeoFunction" column="to_eeo_function" type="string" update="true" insert="true"/>
<property name="ToFlsaNumber" column="to_flsa_number" type="string" update="true" insert="true"/>
<property name="ToManagerType" column="to_manager_type" type="string" update="true" insert="true"/>
<property name="ToOfficeCubeAvailable" column="to_office_cube_available" type="string" update="true" insert="true"/>
<property name="ToOrgCode1" column="to_org_code1" type="string" update="true" insert="true"/>
<property name="ToOrgCodeDesc" column="to_org_code_desc" type="string" update="true" insert="true"/>
<property name="ToOrgCode2" column="to_org_code2" type="string" update="true" insert="true"/>
<property name="ToOrgCode3" column="to_org_code3" type="string" update="true" insert="true"/>
<property name="ToOrgCode4" column="to_org_code4" type="string" update="true" insert="true"/>
<property name="ToPayGrade" column="to_pay_grade" type="string" update="true" insert="true"/>
<property name="ToPayGroup" column="to_pay_group" type="string" update="true" insert="true"/>
<property name="ToPositionNumber" column="to_position_number" type="string" update="true" insert="true"/>
<property name="ToPca" column="to_pca" type="string" update="true" insert="true"/>
<property name="ToSalaryAnnually" column="to_salary_annually" type="big_decimal" update="true" insert="true"/>
<property name="ToSalaryMonthly" column="to_salary_monthly" type="big_decimal" update="true" insert="true"/>
<property name="ToWeeklyHours" column="to_weekly_hours" type="big_decimal" update="true" insert="true"/>
<property name="FromBusinessUnit" column="from_business_unit" type="string" update="true" insert="true"/>
<property name="FromClassNumber" column="from_class_number" type="string" update="true" insert="true"/>
<property name="FromClassTitle" column="from_class_title" type="string" update="true" insert="true"/>
<property name="FromEeoFunction" column="from_eeo_function" type="string" update="true" insert="true"/>
<property name="FromFlsaNumber" column="from_flsa_number" type="string" update="true" insert="true"/>
<property name="FromManagerType" column="from_manager_type" type="string" update="true" insert="true"/>
<property name="FromOfficeCubeAvailable" column="from_office_cube_available" type="string" update="true" insert="true"/>
<property name="FromOrgCode1" column="from_org_code" type="string" update="true" insert="true"/>
<property name="FromOrgCodeDesc" column="from_org_code_desc" type="string" update="true" insert="true"/>
<property name="FromOrgCodeFull" column="from_org_full" type="string" update="true" insert="true"/>
<property name="FromPayGrade" column="from_pay_grade" type="string" update="true" insert="true"/>
<property name="FromPayGroup" column="from_pay_group" type="string" update="true" insert="true"/>
<property name="FromPositionNumber" column="from_position_number" type="string" update="true" insert="true"/>
<property name="FromPca" column="from_pca" type="string" update="true" insert="true"/>
<property name="FromSalaryAnnually" column="from_salary_annually" type="big_decimal" update="true" insert="true"/>
<property name="FromSalaryMonthly" column="from_salary_monthly" type="big_decimal" update="true" insert="true"/>
<property name="FromWeeklyHours" column="from_weekly_hours" type="big_decimal" update="true" insert="true"/>
<property name="CreatedWho" column="cr_who" type="string" update="true" insert="true"/>
<property name="CreatedWhen" column="cr_when" type="timestamp" update="true" insert="true"/>
<property name="UpdatedWho" column="up_who" type="string" update="true" insert="true"/>
<property name="UpdatedWhen" column="up_when" type="timestamp" update="true" insert="true"/>
<many-to-one name="ActionId" not-null="true" update="false" insert="false" class="us.tx.state.oag.WfPersonnelAction.hbm.HbmWfPaActionTable">
<column name="BatchId"/>
<column name="ActionId"/>
</many-to-one>
</class>
</hibernate-mapping>
Code between sessionFactory.openSession() and session.close():
/*******************************************************************************
Class: WfDbAccess
Databases Used: workflows
Developed On: win2k
Deployed Onto: suse
Author: Arnie Morein (ACM3)
Created: July-2006
Version: 1.00
********************************************************************************
Description:
This class consolidates all Hibernate access to the workflows database.
Basically, the portlet sends the in-memory classes to this object who
then writes everything to the database and gets the ids back.
************************** U P D A T E S ********************************
*******************************************************************************/
package us.tx.state.oag.WfPersonnelAction;
//Java imports
import java.math.BigDecimal;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.lang.StringBuffer;
import java.util.Calendar;
import java.util.Date;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.List;
import java.util.ResourceBundle;
import java.util.Vector;
import javax.xml.transform.TransformerException;
// extend imports
import com.novell.afw.util.EboXmlUtil;
import com.sssw.fw.api.EbiContext;
import com.sssw.fw.api.EbiLog;
import com.sssw.fw.api.EbiSession;
import com.sssw.fw.directory.api.EbiDirectoryDelegate;
import com.sssw.fw.exception.EboFactoryException;
import com.sssw.fw.exception.EboSecurityException;
import com.sssw.fw.exception.EboUnrecoverableSystemException;
// extend imports for workflow
import com.sssw.wf.api.*;
import com.sssw.wf.factory.EboFactory;
import com.sun.rsasign.l;
// XML DOM imports
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
// Hibernate imports
import org.hibernate.Hibernate;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.Query;
import org.hibernate.Criteria;
import org.hibernate.ScrollableResults;
// OAG imports
import us.tx.state.oag.util.DatesLibrary;
import us.tx.state.oag.util.DdlDataList;
import us.tx.state.oag.util.Dom2File;
import us.tx.state.oag.util.JsLibraryStrings;
import us.tx.state.oag.util.MessageParameters;
import us.tx.state.oag.util.OagAppUserInfo;
import us.tx.state.oag.util.OagFragmentGenerator;
import us.tx.state.oag.util.OagHibernation;
import us.tx.state.oag.util.OagIdVault;
import us.tx.state.oag.util.OagLoggableClass;
import us.tx.state.oag.util.OagLogger;
import us.tx.state.oag.util.OagMailMessage;
import us.tx.state.oag.util.OagStringUtils;
import us.tx.state.oag.util.SpStatus;
import us.tx.state.oag.util.UserLibrary;
// this portlet imports
import us.tx.state.oag.WfPersonnelAction.ActionCreationData;
import us.tx.state.oag.WfPersonnelAction.DefineEmployeeForm;
import us.tx.state.oag.WfPersonnelAction.PersonnelActionTableConstants;
import us.tx.state.oag.WfPersonnelAction.hbm.HbmWfPaActionBatchTable;
import us.tx.state.oag.WfPersonnelAction.hbm.HbmWfPaCodeActionSignaturesTable;
import us.tx.state.oag.WfPersonnelAction.hbm.HbmWfPaCodeActionStatusTable;
import us.tx.state.oag.WfPersonnelAction.hbm.HbmWfPaCodeActionSubstatusTable;
import us.tx.state.oag.WfPersonnelAction.hbm.HbmWfPaCodeActionTypeTable;
import us.tx.state.oag.WfPersonnelAction.hbm.HbmWfPaCodeWorkflowsTable;
import us.tx.state.oag.WfPersonnelAction.hbm.HbmWfPaEmployeeTable;
import us.tx.state.oag.WfPersonnelAction.hbm.HbmWfPaActionTable;
import us.tx.state.oag.WfPersonnelAction.hbm.HbmWfPaPositionTable;
import us.tx.state.oag.WfPersonnelAction.hbm.HbmWfPaSignaturesTable;
public class WfDbAccess
extends OagLoggableClass
implements PersonnelActionTableConstants {
private Session co_HbmSessWorkflows = null;
private Transaction co_HbmTransaction = null;
private StringBuffer co_errorMessages = null;
private String cs_log_class_name = null;
public WfDbAccess(Session po_HbmSessWorkflows, int pi_logMode)
throws Exception {
co_errorMessages = new StringBuffer();
cs_log_class_name = new String("\r\n\t" + OagStringUtils.getShortClassName(this.getClass().getName()));
this.startLogger(cs_log_class_name);
this.setLogMode(pi_logMode);
if ( po_HbmSessWorkflows == null ) {
Exception e = new Exception(cs_log_class_name + " requires a valid hibernate session to the workflows database");
log(OagLogger.LM_LOGGER_DATABASE, "*** ERROR valid Hibernate Session to Workflows DB required");
log(OagLogger.LM_LOGGER_DATABASE, e.toString());
throw(e);
}
co_HbmSessWorkflows = po_HbmSessWorkflows;
}
public String getErrorMessages() {
return co_errorMessages.toString();
}
private BigDecimal getNextDbId(String ps_field_name) {
BigDecimal lbd_result = null;
boolean lb_temp = true;
log(OagLogger.LM_LOGGER_ENTRY_EXIT, "getNextDbId - ENTER");
try {
Connection lo_db_connection = com.sssw.fw.factory.EboFactory.getServiceLocator().getDbConnection("java:/workflows");
CallableStatement lo_cs = lo_db_connection.prepareCall("{ call sys_get_next_id_value_spf (?,?,?,?,?) }");
lo_cs.setString("@pTxtFieldName", ps_field_name);
lo_cs.registerOutParameter("@pDcNextId", java.sql.Types.DECIMAL);
lo_cs.registerOutParameter("@pIntError", java.sql.Types.INTEGER);
lo_cs.registerOutParameter("@pIntRowCount", java.sql.Types.INTEGER);
lo_cs.registerOutParameter("@pTxtMsg", java.sql.Types.VARCHAR);
lo_cs.executeUpdate();
lbd_result = lo_cs.getBigDecimal("@dc_next_id");
lo_cs.close(); lo_cs = null;
} catch (SQLException se) {
log(OagLogger.LM_LOGGER_ENTRY_EXIT, "*** ERROR in getNextDbId - SQL Exception");
log(OagLogger.LM_LOGGER_ENTRY_EXIT, se.toString());
se.printStackTrace();
} catch (Exception e) {
log(OagLogger.LM_LOGGER_ENTRY_EXIT, "*** ERROR in getNextDbId - Exception");
log(OagLogger.LM_LOGGER_ENTRY_EXIT, e.toString());
e.printStackTrace();
}
log(OagLogger.LM_LOGGER_ENTRY_EXIT, "getNextDbId - EXIT");
return lbd_result;
}
private boolean createActionBatch(ActionCreationData po_ActionCreationData)
throws Exception {
HbmWfPaActionBatchTable lo_actionBatchTable = null;
boolean lb_result = true;
log(OagLogger.LM_LOGGER_ENTRY_EXIT, "createActionBatch - ENTER");
// get a handle on the newly created record object
lo_actionBatchTable = po_ActionCreationData.getBatchData();
// set user who did this
lo_actionBatchTable.setCreatedWhen(po_ActionCreationData.getAppUserInfo().getCreatedWhen());
lo_actionBatchTable.setCreatedWho(po_ActionCreationData.getAppUserInfo().getCreatedWho());
lo_actionBatchTable.setUpdatedWhen(po_ActionCreationData.getAppUserInfo().getCreatedWhen());
lo_actionBatchTable.setUpdatedWho(po_ActionCreationData.getAppUserInfo().getCreatedWho());
// set the default values for certain fields
lo_actionBatchTable.setCreationDate(po_ActionCreationData.getAppUserInfo().getCreatedWhen());
lo_actionBatchTable.setActionStatusId(CBD_ACTION_BATCH_DEFAULT_STATUS);
String ls_bu = po_ActionCreationData.getEmployeeData().getBusinessUnit();
lo_actionBatchTable.setBusinessUnit(ls_bu);
if ( ls_bu.equals(CS_BUSINESS_UNIT_AL) ) {
lo_actionBatchTable.setActionSubstatusId(CBD_ACTION_BATCH_DEFAULT_SUBSTATUS_AL);
} else {
lo_actionBatchTable.setActionSubstatusId(CBD_ACTION_BATCH_DEFAULT_SUBSTATUS_CS);
}
lo_actionBatchTable.setPortalWorkflowId("(new)");
lo_actionBatchTable.setWorkflowId(CBD_WORKFLOW_PERSONNEL_ACTION);
// the rest of the fields come pre-populated
// now, attempt to save the record
try {
log(OagLogger.LM_LOGGER_DATABASE, "createActionBatch - attempting to SAVE");
co_HbmSessWorkflows.save(lo_actionBatchTable);
// check to see if the value from the database gets back to the data in the package
po_ActionCreationData.getBatchData().setBatchId(lo_actionBatchTable.getBatchId());
} catch (Exception e) {
lb_result = false;
String ls_temp = "*** ERROR in createActionBatch - SAVE failed";
log(OagLogger.LM_LOGGER_DATABASE, ls_temp);
co_errorMessages.append(ls_temp + "\r\n");
log(OagLogger.LM_LOGGER_DATABASE, e.toString());
co_errorMessages.append(e.toString() + "\r\n");
throw(e);
}
log(OagLogger.LM_LOGGER_ENTRY_EXIT, "createActionBatch - EXIT");
return lb_result;
}
private boolean createActions(ActionCreationData po_ActionCreationData)
throws Exception {
HbmWfPaActionTable hbmWfPaActionTable = null;
HbmWfPaPositionTable hbmWfPaPositionTable = null;
HbmWfPaEmployeeTable hbmWfPaEmployeeTable = null;
DefineActionForm defineActionForm = null;
boolean lb_action_saved = false, lb_position_saved = false;
Iterator lo_Iterator = po_ActionCreationData.getActionsVector().iterator();
log(OagLogger.LM_LOGGER_ENTRY_EXIT, "createActions - ENTER");
while ( lo_Iterator.hasNext() ) {
// get the action information out of the vector
defineActionForm = (DefineActionForm)lo_Iterator.next();
// create an action record for saving
hbmWfPaActionTable = new HbmWfPaActionTable();
// get the new action id
//hbmWfPaActionTable.setActionId(this.getNextDbId("next_action_id"));
hbmWfPaActionTable.setBatchId(po_ActionCreationData.getBatchData().getBatchId());
hbmWfPaActionTable.setActionTypeId(defineActionForm.getActionTypeId());
hbmWfPaActionTable.setActionTypeDesc(defineActionForm.getActionTypeDesc());
hbmWfPaActionTable.setComments(defineActionForm.getActionComments());
hbmWfPaActionTable.setCreatedWho(po_ActionCreationData.getAppUserInfo().getCreatedWho());
hbmWfPaActionTable.setCreatedWhen(po_ActionCreationData.getAppUserInfo().getCreatedWhen());
hbmWfPaActionTable.setUpdatedWho(po_ActionCreationData.getAppUserInfo().getUpdatedWho());
hbmWfPaActionTable.setUpdatedWhen(po_ActionCreationData.getAppUserInfo().getUpdatedWhen());
// attempt to save the record
try {
co_HbmSessWorkflows.save(hbmWfPaActionTable);
lb_action_saved = true;
} catch (Exception se) {
String ls_temp = "*** ERROR in createActions - SAVE Action failed";
log(OagLogger.LM_LOGGER_DATABASE, ls_temp);
co_errorMessages.append(ls_temp + "\r\n");
log(OagLogger.LM_LOGGER_DATABASE, se.toString());
co_errorMessages.append(se.toString() + "\r\n");
throw(se);
}
if ( lb_action_saved ) {
// create the position table record from the vector info
hbmWfPaPositionTable = new HbmWfPaPositionTable();
defineActionForm.moveDataToAncestor(hbmWfPaPositionTable);
hbmWfPaPositionTable.setBatchId(po_ActionCreationData.getBatchData().getBatchId());
hbmWfPaPositionTable.setActionId(hbmWfPaActionTable.getActionId());
hbmWfPaPositionTable.setCreatedWho(po_ActionCreationData.getAppUserInfo().getCreatedWho());
hbmWfPaPositionTable.setCreatedWhen(po_ActionCreationData.getAppUserInfo().getCreatedWhen());
hbmWfPaPositionTable.setUpdatedWho(po_ActionCreationData.getAppUserInfo().getUpdatedWho());
hbmWfPaPositionTable.setUpdatedWhen(po_ActionCreationData.getAppUserInfo().getUpdatedWhen());
// attempt to save the record
try {
co_HbmSessWorkflows.save(hbmWfPaPositionTable);
lb_position_saved = true;
} catch (Exception se) {
String ls_temp = "*** ERROR in createActions - SAVE Position failed";
log(OagLogger.LM_LOGGER_DATABASE, ls_temp);
co_errorMessages.append(ls_temp + "\r\n");
log(OagLogger.LM_LOGGER_DATABASE, se.toString());
co_errorMessages.append(se.toString() + "\r\n");
throw(se);
} // try
} // if
} // end-while
//now try to save the employee information that goes with this action
DefineEmployeeForm defineEmployeeForm = po_ActionCreationData.getEmployeeData();
hbmWfPaEmployeeTable = new HbmWfPaEmployeeTable();
defineEmployeeForm.moveDataToAncestor(hbmWfPaEmployeeTable);
hbmWfPaEmployeeTable.setBatchId(po_ActionCreationData.getBatchData().getBatchId());
hbmWfPaEmployeeTable.setActionId(hbmWfPaActionTable.getActionId());
hbmWfPaEmployeeTable.setCreatedWho(po_ActionCreationData.getAppUserInfo().getCreatedWho());
hbmWfPaEmployeeTable.setCreatedWhen(po_ActionCreationData.getAppUserInfo().getCreatedWhen());
hbmWfPaEmployeeTable.setUpdatedWho(po_ActionCreationData.getAppUserInfo().getUpdatedWho());
hbmWfPaEmployeeTable.setUpdatedWhen(po_ActionCreationData.getAppUserInfo().getUpdatedWhen());
// attempt to save the record
try {
co_HbmSessWorkflows.save(hbmWfPaEmployeeTable);
lb_position_saved = true;
} catch (Exception se) {
String ls_temp = "*** ERROR in createActions - SAVE Employee failed";
log(OagLogger.LM_LOGGER_DATABASE, ls_temp);
co_errorMessages.append(ls_temp + "\r\n");
log(OagLogger.LM_LOGGER_DATABASE, se.toString());
co_errorMessages.append(se.toString() + "\r\n");
throw(se);
} // try
log(OagLogger.LM_LOGGER_ENTRY_EXIT, "createActions - EXIT");
return ( lb_action_saved == true && lb_position_saved == true );
}
public boolean createNewWorkflow(ActionCreationData po_ActionCreationData) {
Timestamp lts_now = new Timestamp(new Date().getTime());
boolean lb_result = true, lb_inError = false;
BigDecimal lbd_new_portal_workflow_id = null, lbd_new_batch_id = null, lbd_new_action_id = null;
log(OagLogger.LM_LOGGER_ENTRY_EXIT, "createNewWorkflow - ENTER");
// get new ids for record keys
//po_ActionCreationData.getBatchData().setBatchId(this.getNextDbId("next_action_batch_id"));
co_HbmTransaction = co_HbmSessWorkflows.beginTransaction();
// set now as the time for the updates
po_ActionCreationData.getAppUserInfo().setNow(lts_now);
try {
/*
* first the batch record must exist as its primary key field
* must be replicated in the other tables
*/
this.createActionBatch(po_ActionCreationData);
/*
* now try to add the action records from the vector (which
* actually contains position records but the action records
* are the parent here
*/
this.createActions(po_ActionCreationData);
} catch (Exception e) {
lb_inError = true;
lb_result = false;
} finally {
if ( lb_inError ) {
log(OagLogger.LM_LOGGER_DATABASE, "*** ERROR in createNewWorkflow - ROLLing BACK");
try {
co_HbmTransaction.rollback();
} catch (Exception rb) {
String ls_temp = "*** ERROR in createNewWorkflow - ROLLBACK failed";
log(OagLogger.LM_LOGGER_DATABASE, ls_temp);
co_errorMessages.append(ls_temp + "\r\n");
log(OagLogger.LM_LOGGER_DATABASE, rb.toString());
co_errorMessages.append(rb.toString() + "\r\n");
}
} else {
try {
log(OagLogger.LM_LOGGER_DATABASE, "createNewWorkflow - COMMIT WORK");
co_HbmTransaction.commit();
} catch (Exception e2) {
lb_result = false;
String ls_temp = "*** ERROR in createNewWorkflow - COMMIT failed";
log(OagLogger.LM_LOGGER_DATABASE, ls_temp);
co_errorMessages.append(ls_temp + "\r\n");
log(OagLogger.LM_LOGGER_DATABASE, e2.toString());
co_errorMessages.append(e2.toString() + "\r\n");
}
}
}
log(OagLogger.LM_LOGGER_ENTRY_EXIT, "createNewWorkflow - EXIT");
return lb_result;
}
}
Name and version of the database you are using: Sybase 12
Full stack trace of any exception that occurs:
2006-07-27 14:38:17,095 INFO [STDOUT] PortletLog|1|7/27/06|14:38:17:095|
WfDbAccess - createNewWorkflow - COMMIT WORK
2006-07-27 14:38:17,687 INFO [STDOUT] Hibernate: insert into info_wf_action_batch (business_unit, creation_date, desired_effective_date, effective_date, portal_workflow_id, workflow_id, cr_who, cr_when, up_who, up_when, batch_id) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
2006-07-27 14:38:17,719 WARN [org.hibernate.util.JDBCExceptionReporter] SQL Error: 233, SQLState: 23000
2006-07-27 14:38:17,719 ERROR [org.hibernate.util.JDBCExceptionReporter] The column action_status_id in table info_wf_action_batch does not allow null values.
2006-07-27 14:38:17,734 WARN [org.hibernate.util.JDBCExceptionReporter] SQL Error: 233, SQLState: 23000
2006-07-27 14:38:17,734 ERROR [org.hibernate.util.JDBCExceptionReporter] The column action_substatus_id in table info_wf_action_batch does not allow null values.
2006-07-27 14:38:17,750 ERROR [org.hibernate.event.def.AbstractFlushingEventListener] Could not synchronize database state with session
org.hibernate.exception.ConstraintViolationException: could not insert: [us.tx.state.oag.WfPersonnelAction.hbm.HbmWfPaActionBatchTable]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:63)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:1859)
at org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:2190)
at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:46)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:239)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:223)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:136)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:274)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:680)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:309)
at org.hibernate.transaction.CacheSynchronization.beforeCompletion(CacheSynchronization.java:58)
at org.jboss.tm.TransactionImpl.doBeforeCompletion(TransactionImpl.java:1383)
at org.jboss.tm.TransactionImpl.beforePrepare(TransactionImpl.java:1075)
at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:296)
at org.jboss.tm.TxManager.commit(TxManager.java:200)
at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(ServerVMClientUserTransaction.java:126)
at org.hibernate.transaction.JTATransaction.commit(JTATransaction.java:130)
at us.tx.state.oag.WfPersonnelAction.WfDbAccess.createNewWorkflow(WfDbAccess.java:345)
at us.tx.state.oag.WfPersonnelAction.PersonnelActionManagement.processCommitBatch(PersonnelActionManagement.java:2455)
at us.tx.state.oag.WfPersonnelAction.PersonnelActionManagement.processAction(PersonnelActionManagement.java:2567)
at us.tx.state.oag.WfPersonnelAction.OagWfPersonnelActionPortlet.processAction(OagWfPersonnelActionPortlet.java:304)
at com.novell.afw.portlet.core.EboPortletContainer.processOperation(EboPortletContainer.java:646)
at com.novell.afw.portlet.core.EboPortletContainer.processOperation(EboPortletContainer.java:549)
at com.novell.afw.portlet.core.EboPortletContainer.performBlockingInteraction(EboPortletContainer.java:192)
at com.novell.afw.portlet.consumer.core.EboPortletConsumerContainer.processOperation(EboPortletConsumerContainer.java:311)
at com.novell.afw.portlet.consumer.core.EboPortletConsumerContainer.performBlockingInteraction(EboPortletConsumerContainer.java:148)
at com.novell.afw.portal.proxy.EboPortletContainerProxy.performBlockingInteraction(EboPortletContainerProxy.java:197)
at com.novell.afw.portal.aggregation.EboPortletProxyHelper.callPortletActionRequest(EboPortletProxyHelper.java:480)
at com.novell.afw.portal.aggregation.EboPortalAggregationControllerImpl.checkAndHandleActionURLType(EboPortalAggregationControllerImpl.java:1987)
at com.novell.afw.portal.aggregation.EboPortalAggregationControllerImpl.initiateRendering(EboPortalAggregationControllerImpl.java:1261)
at com.novell.afw.portal.aggregation.EboPortalAggregationControllerImpl.renderPortalResponse(EboPortalAggregationControllerImpl.java:531)
at com.novell.afw.portal.aggregation.EboPortalAggregationServlet.handlePortalContainerRequest(EboPortalAggregationServlet.java:761)
at com.novell.afw.portal.aggregation.EboPortalAggregationServlet.callService(EboPortalAggregationServlet.java:218)
at com.novell.afw.portal.aggregation.EboPortalAggregationServlet.doGet(EboPortalAggregationServlet.java:90)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at com.novell.afw.portal.xforms.EboXFormClientDetectionFilter.doFilter(EboXFormClientDetectionFilter.java:97)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:66)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:150)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:54)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
Caused by: java.sql.SQLException: The column action_status_id in table info_wf_action_batch does not allow null values.
at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:365)
at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2781)
at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2224)
at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:633)
at net.sourceforge.jtds.jdbc.JtdsStatement.processResults(JtdsStatement.java:525)
at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQL(JtdsStatement.java:487)
at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeUpdate(JtdsPreparedStatement.java:421)
at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeUpdate(WrappedPreparedStatement.java:316)
at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:22)
at org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:1843)
... 71 more
2006-07-27 14:38:17,906 DEBUG [org.jboss.util.NestedThrowable] org.jboss.util.NestedThrowable.parentTraceEnabled=true
2006-07-27 14:38:17,906 DEBUG [org.jboss.util.NestedThrowable] org.jboss.util.NestedThrowable.nestedTraceEnabled=false
2006-07-27 14:38:17,906 DEBUG [org.jboss.util.NestedThrowable] org.jboss.util.NestedThrowable.detectDuplicateNesting=true
2006-07-27 14:38:17,890 ERROR [org.hibernate.transaction.JTATransaction] JTA commit failed
org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=ACM3-60848/16, BranchQual=, localId=16] status=STATUS_NO_TRANSACTION; - nested throwable: (org.hibernate.exception.ConstraintViolationException: could not insert: [us.tx.state.oag.WfPersonnelAction.hbm.HbmWfPaActionBatchTable])
at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:344)
at org.jboss.tm.TxManager.commit(TxManager.java:200)
at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(ServerVMClientUserTransaction.java:126)
at org.hibernate.transaction.JTATransaction.commit(JTATransaction.java:130)
at us.tx.state.oag.WfPersonnelAction.WfDbAccess.createNewWorkflow(WfDbAccess.java:345)
at us.tx.state.oag.WfPersonnelAction.PersonnelActionManagement.processCommitBatch(PersonnelActionManagement.java:2455)
at us.tx.state.oag.WfPersonnelAction.PersonnelActionManagement.processAction(PersonnelActionManagement.java:2567)
at us.tx.state.oag.WfPersonnelAction.OagWfPersonnelActionPortlet.processAction(OagWfPersonnelActionPortlet.java:304)
at com.novell.afw.portlet.core.EboPortletContainer.processOperation(EboPortletContainer.java:646)
at com.novell.afw.portlet.core.EboPortletContainer.processOperation(EboPortletContainer.java:549)
at com.novell.afw.portlet.core.EboPortletContainer.performBlockingInteraction(EboPortletContainer.java:192)
at com.novell.afw.portlet.consumer.core.EboPortletConsumerContainer.processOperation(EboPortletConsumerContainer.java:311)
at com.novell.afw.portlet.consumer.core.EboPortletConsumerContainer.performBlockingInteraction(EboPortletConsumerContainer.java:148)
at com.novell.afw.portal.proxy.EboPortletContainerProxy.performBlockingInteraction(EboPortletContainerProxy.java:197)
at com.novell.afw.portal.aggregation.EboPortletProxyHelper.callPortletActionRequest(EboPortletProxyHelper.java:480)
at com.novell.afw.portal.aggregation.EboPortalAggregationControllerImpl.checkAndHandleActionURLType(EboPortalAggregationControllerImpl.java:1987)
at com.novell.afw.portal.aggregation.EboPortalAggregationControllerImpl.initiateRendering(EboPortalAggregationControllerImpl.java:1261)
at com.novell.afw.portal.aggregation.EboPortalAggregationControllerImpl.renderPortalResponse(EboPortalAggregationControllerImpl.java:531)
at com.novell.afw.portal.aggregation.EboPortalAggregationServlet.handlePortalContainerRequest(EboPortalAggregationServlet.java:761)
at com.novell.afw.portal.aggregation.EboPortalAggregationServlet.callService(EboPortalAggregationServlet.java:218)
at com.novell.afw.portal.aggregation.EboPortalAggregationServlet.doGet(EboPortalAggregationServlet.java:90)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at com.novell.afw.portal.xforms.EboXFormClientDetectionFilter.doFilter(EboXFormClientDetectionFilter.java:97)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:66)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:150)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:54)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
Caused by: org.hibernate.exception.ConstraintViolationException: could not insert: [us.tx.state.oag.WfPersonnelAction.hbm.HbmWfPaActionBatchTable]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:63)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:1859)
at org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:2190)
at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:46)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:239)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:223)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:136)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:274)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:680)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:309)
at org.hibernate.transaction.CacheSynchronization.beforeCompletion(CacheSynchronization.java:58)
at org.jboss.tm.TransactionImpl.doBeforeCompletion(TransactionImpl.java:1383)
at org.jboss.tm.TransactionImpl.beforePrepare(TransactionImpl.java:1075)
at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:296)
... 58 more
Caused by: java.sql.SQLException: The column action_status_id in table info_wf_action_batch does not allow null values.
at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:365)
at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2781)
at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2224)
at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:633)
at net.sourceforge.jtds.jdbc.JtdsStatement.processResults(JtdsStatement.java:525)
at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQL(JtdsStatement.java:487)
at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeUpdate(JtdsPreparedStatement.java:421)
at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeUpdate(WrappedPreparedStatement.java:316)
at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:22)
at org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:1843)
... 71 more
2006-07-27 14:40:31,758 DEBUG [org.jboss.resource.connectionmanager.IdleRemover] run: IdleRemover notifying pools, interval: 450000
|