Crear beans de sesión nuevos

Cuando cree beans de sesión nuevos, créelos en el proyecto WebSphereCommerceServerExtensionsData.

Por qué y cuándo se efectúa esta tarea

Utilice el asistente que se proporciona en Rational Application Developer para crear las clases necesarias para el nuevo bean de sesión. Para obtener más información, consulte Creating enterprise beans using wizards.

HCL Commerce utiliza beans de acceso en su modelo de programación y los beans de acceso no dan soporte a las interfaces locales. Para utilizar interfaces locales en lugar de utilizar beans de acceso, debe realizar una búsqueda inicial directamente y guardarla personalmente en la memoria caché por motivos de rendimiento. El nuevo bean de sesión debe ampliar la clase com.ibm.commerce.base.helpers.BaseJDBCHelper. La superclase proporciona métodos que permiten obtener un objeto de conexión JDBC del objeto de origen de datos utilizado por HCL Commerce Server, para que el bean de sesión participe en la misma transacción que los demás beans de entidad. A continuación se muestra un ejemplo de código que muestra las funciones proporcionadas por la superclase:

public class mySessionBean extends
com.ibm.commerce.base.helpers.BaseJDBCHelper 
   implements SessionBean 
{

   public Object myMethod()
        throws javax.naming.NamingException, SQLException
   {

       ///////////////////////////////////////////////// 
      //  -- your logic, such as initialization --    // 
      ///////////////////////////////////////////////// 

         try {
             // get a connection from the HCL Commerce data source
             makeConnection();
             PreparedStatement stmt = getPreparedStatement(
                "your sql string");
            
						//////////////////////////////////////////////////////////// 
             // -- your logic such as set parameter into the prepared  //
             // statement --    																	  // 
             /////////////////////////////////////////////////////////// 
             ResultSet rs = executeQuery(stmt, false);

					  while(rs.next()) {

             ///////////////////////////////////////////////// 
             // -- your logic to process the result set -- //
            //////////////////////////////////////////////// 

						}
          } 
          finally {
             // return the connection to the HCL Commerce
data source
            closeConnection(); 
          }

        /////////////////////////////////////////////////////
       // -- your logic to return the result ---           //
       //////////////////////////////////////////////////////

   }

}

En el ejemplo de código anterior, el método executeQuery tiene dos parámetros de entrada. El primero es una sentencia preparada y el segundo es un distintivo booleano relacionado con una operación de borrado de memoria caché. Establezca este distintivo en true si necesita que el contenedor vacíe todos los objetos de entidad para la transacción actual de la memoria caché, antes de ejecutar la consulta. Es necesaria esta operación si ha efectuado actualizaciones en algunos objetos de entidad y necesita que la consulta busque en estos objetos actualizados. Si el indicador se establece en false, estas actualizaciones de los objetos de entidad no se grabarían en la base de datos hasta el final de la transacción.

Debe limitar el uso de este distintivo y establecerlo normalmente en false, excepto en los casos en que sea realmente necesario. La operación de vaciado es una operación de uso intensivo de recursos.