Consulta personalizada de Hibernate para la pantalla de búsqueda

Tengo una pantalla de búsqueda que tiene 10 campos e involucra alrededor de 5 a 6 tablas para obtener el resultado. Estoy escribiendo una consulta SQL personalizada y agregando donde condición solo cuando existe un valor.

¿Puede alguien sugerirme si es este el enfoque correcto o cualquier otra forma mejor?

No puedo usar ningún complemento o API adicionales para mi situación.

StringBuffer sqlQuery = new StringBuffer();
sqlQuery.append (" select member.* from member, customer, case where customer.status='A');
if(firstName != null)
sqlQuery.append("customer.firstName= :firstName");

if(caseid != null)
sqlQuery.append("case.caseid =:caseid");

SQLQuery queryObj = createSQLquery(sqlQuery.toString());
queryObj.list();

donde como miembro, cliente, caso son tablas reales.

ACTUALIZAR

cuando estoy agregando la condición where al string buffer

if(caseid != null)
sqlQuery.append(" and case.caseid =:caseid");

and when queryObj is formed I am doing it as
if(caseid != null)
queryObj.setString("caseid", caseid);

is there better way to add after queryObj (to combine both)?

Gracias por adelantado.

Respuesta 1

¿Puedo usar caridad variable de th: cada uno en otro bloque de código? Por ejemplo, <select class = "select-field"> <opción th: each = "charity: $ {charities}" th: value = "$ {charity.id}" th: text = "$ {...

Según la documentación de Lotus Notes, una vista que contiene una columna con un valor constante o la interfaz de usuario solo funciona como sus datos, la columna no se incluirá en el vector de valores de columna a través del ...

Esto parece una tarea simple, pero ya he hablado con dos de mis compañeros de trabajo sobre esto y nadie entiende dónde radica el problema. Tenemos un proyecto Maven de múltiples módulos con un archivo POM raíz ...

Estoy usando índices lucene para una función de búsqueda en una aplicación en Java. Eliminar e insertar una nueva entrada en los índices de lucene es bastante sencillo, pero ¿alguien sabe cómo actualizar un lucene ...