two tables subconsultas parametros inner fechas ejemplos datos consultas consultar consulta con hibernate

hibernate - tables - ¿Recuperando todas las filas de una tabla sin HQL?



hql join two tables (3)

// Clase Hibernate

public class CommonDAO<T> { Session session = null; Transaction transaction = null; private Class<T> clazz; public CommonDAO(){ //constructor session = HibernateUtil.getSessionFactory().openSession(); transaction = session.beginTransaction(); Type genericSuperclass = this.getClass().getGenericSuperclass(); if (genericSuperclass instanceof ParameterizedType) { ParameterizedType pt = (ParameterizedType) genericSuperclass; Type type = pt.getActualTypeArguments()[0]; clazz = (Class<T>) type; } } public T listById(Object id) { T object = null; try { object = (T) session.get(clazz, (Serializable) id); } catch (Exception e) { e.printStackTrace(); } return object; } }

// Clase de usuario

public class UserDAO extends CommonDAO<UserMaster> { // Here UserMaster is pojo public UserDAO() { super(); } public static void main(String ar[]) { UserMaster user = new UserDAO().listById(1); // 1 is id System.out.println(user.getUserName()); } }

Estoy usando Hibernate 4 y me gustaría simplemente enumerar todas las filas de una tabla. Todas las soluciones que encontré sugieren usar algo como "desde el nombre de la tabla", pero me gustaría evitar las codificaciones de los nombres de tablas en cadenas.


HQL no usa nombres de tabla. Utiliza nombres de entidades. Y los nombres de las entidades son (por defecto) nombres de clase. Entonces puedes usar

String hql = "select a from " + TheEntity.class.getSimpleName() + " a";

Pero yo preferiría la legibilidad sobre la seguridad del tipo aquí, y el uso

String hql = "select a from TheEntity a";

Deberías tener pruebas automatizadas para tus consultas de todos modos.


Puedes usar

session.createCriteria(MyEntity.class).list();

por ejemplo.