1.INSERT

调用PL/SQL 去insert的时候,没有使用super(),此时应当自己创建callable statement;

调用checkErrors()方法在执行 callable statement 处理异常后

protected void insertRow()
{
   try
   {
     String insertStmt = "BEGIN INSERT_RECORD( " +
                                  "PARAM1 => :1, " +
                                  "PARAM2 => :2, " +
                                  "PARAM3 => :3, " +
                                  "PARAM4 => :4); END;";

     DBTransaction trxn = getDBTransaction();
CallableStatement insertStmt = trxn.createCallableStatement(insertStmt, 1); // Rebind parameters
insertStmt.setString(1, getFirstName());
insertStmt.setString(2, getLastName());
insertStmt.setString(3, getAddress1());
insertStmt.setString(4, getAddress2());
     // Execute the statement
insertStmt.executeUpdate();
     // OAExceptionUtils.checkErrors as per PLSQL API standards
OAExceptionUtils.checkErrors (txn);
}
catch(SQLException sqlE)
{
...
}
}

If you have any calculations for any of your EO columns in your PL/SQL procedure, and if you would like to reflect those values in your EO after row insertion in the database, then you should include those columns in your view object SQL and do the following:

txn.commit();
vo.executeQuery();

清除EO缓存

clearEntityCache() ;

05-08 08:12