¿Hay alguna forma de ejecutar estas consultas como si les hubiera agregado una sugerencia (NOLOCK)?Consultas Java Hibernate HQL con nolock
Respuesta
Si realmente necesita esto, entonces usted quiere hacer algo como:
session.connection().setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
que es idéntica a una nolock.
Antes de hacer eso, realmente piense detenidamente si quiere hacer una lectura sucia. La mayoría de las veces las personas hacen esto porque es lo que siempre han hecho, en lugar de hacerlo porque es lo correcto. En particular, esto no funciona bien con el almacenamiento en caché.
En realidad, this thread aborda un poco las cuestiones. Lea cuidadosamente antes de decidir.
En última versión de Hibernate tiene que hacerlo de esta manera:
Session session = (Session) em.getDelegate();
session.doWork(new Work() {
@Override
public void execute(Connection connection) throws SQLException {
connection.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
}
});
He usado este método para establecer niveles de aislamiento de transacciones read_uncommitted en ciertas consultas, pero me di cuenta de que el monto de la conexión se aumentó varias veces más que la cantidad sin él. El monto de la conexión en nuestro servidor Websphere que contiene la aplicación fue de 4 por un usuario antes de las transacciones read_uncommitted y luego se convirtió en 80. ¿Es eso normal? ¿O debería buscar algo más y encontrar el problema en otro lugar? – CntkCtn
Puede hacer el "con (nolock)" si vas nativa. Esto es extremo, pero si la alternativa es cambiar el nivel de aislamiento de la transacción, quizás prefiera hacer esto.
Tenga en cuenta que este ejemplo es para MSSQL.
String sqlQueryString = "SELECT * FROM my_classes_table WITH (nolock) WHERE columnName = :columnValue";
SQLQuery sqlQuery= session.createSQLQuery(sqlQueryString).addEntity(MyClass.class);
sqlQuery.setLong("columnValue", value);
List<MyClass> out = sqlQuery.list();
- 1. HQL contra SQL/Hibernate netbeans Editor HQL
- 2. ¿Están Hibernate denominadas consultas HQL (en anotaciones) optimizadas?
- 3. Hibernate Interceptor/Listeners para HQL
- 4. HQL: Usar Boolean en consultas con nombre
- 5. HQL y uno-a-muchas consultas
- 6. ¿Cómo probar las consultas HQL?
- 7. Hibernate combinación interna usando hql
- 8. Hibernate Polimórfico HQL instrucción SELECT
- 9. con (nolock) o (nolock) - ¿Hay alguna diferencia?
- 10. Buscando un constructor HQL (Hibernate Query Language)
- 11. NOLOCK con multiprocesamiento
- 12. Convertir hibernate HQL con collection.size a criterio consulta
- 13. crear consultas en Hibernate
- 14. hibernate - HQL se une a muchas cláusulas
- 15. Hibernate HQL consulta utilizando como operador
- 16. ¿Cómo realizar una consulta HQL no polimórfica en Hibernate?
- 17. NOLOCK con Linq a SQL
- 18. ¿Cómo seleccionar la clase de un objeto en HIbernate HQL?
- 19. ¿Cómo correlacionar una propiedad solo para HQL (en Hibernate)?
- 20. EN-cláusula en HQL o Java Persistence Query Language
- 21. Hibernate Criteria vs HQL: ¿qué es más rápido?
- 22. cómo escapar de palabras reservadas en HQL de Hibernate
- 23. ¿Cómo externalizo las consultas con nombre en una aplicación de anotaciones Hibernate?
- 24. java, hibernate: propiedad de asignación con una consulta
- 25. Hibernate HQL Consulta para obtener parent + children basado en childID
- 26. Ventajas de las consultas con nombre en hibernate?
- 27. Hibernate desactivar la caché de consultas
- 28. Evitar selecciones o uniones secundarias con Hibernate Criteria o consulta HQL
- 29. Escribir la cláusula HQL utilizando Hibernate Criteria API
- 30. ¿Cómo poner un comentario en HQL (Hibernate Query Language)?
Gracias, Gary. Sí, estaba buscando lecturas sucias. Nuestros DBA recomiendan NOLOCK para todas las "selecciones" en esta área de proyecto. Los problemas fueron, parte de los SQL estaban hibernando. – Sarit
En las últimas versiones de Hibernate, connection() parece eliminarse de la API. ¿Alguna idea sobre cómo se puede lograr un efecto similar sin un objeto de conexión? –
Si usa la anotación '@ Transactional', se puede especificar como la propiedad' isolation'. – Tobb