Pregunta

Noté que hibernate genera diferentes alias para las mismas columnas cada vez que intento acceder a la misma tabla:

Hibernate: select person0_.id as id0_0_, person0_.nam as nam0_0_, person0_.fam as fam0_0_, person0_.otc as otc0_0_ from web_db.Person person0_ where person0_.id=?
Hibernate: select person0_.id as id4_0_, person0_.nam as nam4_0_, person0_.fam as fam4_0_, person0_.otc as otc4_0_ from web_db.Person person0_ where person0_.id=?

¿Hay alguna forma de hibernar para generar alias idénticos para consultas idénticas? Por ejemplo:

Hibernate: select person0_.id as id0_0_, person0_.nam as nam0_0_, person0_.fam as fam0_0_, person0_.otc as otc0_0_ from web_db.Person person0_ where person0_.id=?
Hibernate: select person0_.id as id0_0_, person0_.nam as nam0_0_, person0_.fam as fam0_0_, person0_.otc as otc0_0_ from web_db.Person person0_ where person0_.id=?
¿Fue útil?

Solución

Eche un vistazo a HHH-2448 que cubre este tema y tiene un parche para la generación de alias determinista.

Otros consejos

De todos modos, mi solución: consultas con nombre, donde especificaré cómo seleccionar datos explícitamente ...

Primero, estoy usando Oracle 9i.

Las consultas diferentes hacen que el servidor realice un análisis duro. Si hay muchas consultas de este tipo, la responsabilidad del servidor de la base de datos está disminuyendo. Tenemos que usar variables de enlace para evitar este problema.

Respuesta corta: no

¿Por qué?
De eso se trata, ¿no? Se abstrae de las declaraciones de consulta reales.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top