Búsqueda de datos utilizando un bean de acceso

Utilizará beans de acceso en la lógica de negocio cuando desee buscar datos en la base de datos de HCL Commerce. En un bean de acceso, debe seleccionar el registro de base de datos adecuado utilizando la clave primaria o un método buscador.

Búsqueda de datos por clave primaria

El siguiente fragmento de código demuestra cómo seleccionar utilizando una clave primaria.

La primera línea del fragmento de código siguiente crea una instancia de un UserProfileAccessBean nuevo que se llama "abUserProfile". La segunda línea establece la clave primaria en el bean de acceso. HCL Commerce utiliza el convenio de denominación setInitKey_ xxx (donde xxx es el nombre del campo de clave primaria) para dar nombre a los métodos set para las claves primarias.

//create a new access bean
UserProfileAccessBean abUserProfile = new UserProfileAccessBean();

// set the primary key
abUserProfile.setInitKey_UserId(getUserId().toString());

//call getter to get the DisplayName.  This will also fully populate the access bean with data.
String myDisplayName = abUserProfile.getDisplayName();

Cuándo utilizar instantiateEntity()

Utilice el método instantiateEntity para recuperar información de la base de datos y llenar el bean de acceso. No es necesario utilizar instantiateEntity() si utiliza un método getter para recuperar datos específicos del bean de acceso. Solo es necesario utilizarlo para indicar de forma explícita al bean de acceso que se llene automáticamente, por ejemplo, para comprobar si los datos que está buscando existen, o para llenar un objeto antes de pasarlo a otro método.

Por ejemplo:
//Create a new access bean
UserProfileAccessBean abUserProfile = new UserProfileAccessBean();

//Set the primary key
abUserProfile.setInitKey_UserId(getUserId().toString());

//Call instantiateEntity to populate it with data
abUserProfile.instantiateEntity();
Nota: Cuando se crea una instancia de un bean de acceso, debe asegurarse de que todos los campos establecidos por un método setInitKey_xxx se hayan inicializado antes de recuperar cualquier dato del bean de acceso. Esto incluye utilizar cualquier método getter o invocar al método instantiateEntity(). El orden en que se llama a los métodos setInitKey_xxx no es importante.

Búsqueda de datos utilizando un método buscador

Los beans de acceso también pueden proporcionar métodos de búsqueda para operaciones "find" que se necesitan a menudo. Estos métodos le devolverán una enumeración de beans de acceso que coinciden con los criterios de búsqueda. Si se encuentran registros, habrá uno o más beans de acceso en la enumeración. Si el resultado del buscador esta vacío, el método buscador generará javax.persistence.NoResultException.

Por ejemplo, en el siguiente ejemplo de código, si no se encuentran usuarios con el nombre de apodo especificado, se captura y se registra NoResultException.

AddressAccessBean abAddress = new AddressAccessBean().findByNickname("nickname", new Long("10001")); 
Donde nickname es el término de búsqueda que se utiliza para el apodo.
Nota: El valor devuelto pueden ser objetos individuales en un buscador o una enumeración.