C'è un modo per eseguire queste query come se avessi aggiunto un suggerimento (NOLOCK) a loro?Java Hibernate query HQL con nolock
risposta
Se davvero bisogno di questo, allora si vuole fare qualcosa di simile:
session.connection().setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
che è identico a un NOLOCK.
Prima di farlo, pensa davvero attentamente se vuoi fare una lettura sporca. La maggior parte delle volte le persone lo fanno perché è quello che hanno sempre fatto, piuttosto che perché è la cosa giusta da fare. In particolare, questo non funziona bene con il caching.
In realtà, this thread entra un po 'nei problemi. Leggere attentamente prima di decidere.
Nella versione più recente di Hibernate si deve fare in questo modo:
Session session = (Session) em.getDelegate();
session.doWork(new Work() {
@Override
public void execute(Connection connection) throws SQLException {
connection.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
}
});
Ho usato questo metodo per impostare i livelli di isolamento della transazione read_uncommitted su alcune query, ma mi sono reso conto che l'importo della connessione è stato aumentato più volte di più della quantità senza di essa. L'ammontare della connessione sul nostro server Websphere che contiene l'applicazione era 4 per un utente prima di read_uncommitted transaction e dopo è diventato come 80. È normale? O dovrei cercare qualcos'altro e da qualche altra parte per trovare il problema? – CntkCtn
Si può fare il "con (nolock)" se si va nativo. Questo è estremo ma se l'alternativa sta cambiando il livello di isolamento della transazione, potresti farlo.
Si noti che questo esempio è per 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: Hibernate query with ManyToMany
- 2. Hibernate aggiornamento batch tramite query HQL
- 3. HQL vs. SQL/Hibernate netbeans Editor HQL
- 4. Converti HQL hibernate con collection.size in query dei criteri
- 5. Hibernate 4.1.11 hql elimina la query con la posizione nell'elenco
- 6. Hibernate Interceptor/Listener per HQL
- 7. Possiamo concatenare due proprietà nella query HQL di Hibernate?
- 8. Hibernate Query Language (HQL) - Richieste de pigro/carico non-lazy
- 9. Come eseguire una query non polimorfica HQL in Hibernate?
- 10. Hibernate HQL Query: come impostare una raccolta come parametro con nome di una query?
- 11. interrogazione Hibernate HQL utilizzando come operatore
- 12. Utilizzare hibernate/hql per troncare una tabella?
- 13. HIBernate Polymorphic HQL SELECT statement
- 14. hibernate - eliminare HQL in strumento di eclissi hibernate
- 15. Tabelle join query HQL
- 16. con (nolock) o (nolock) - C'è una differenza?
- 17. Utilizzando cfqueryparam con una query ColdFusion HQL
- 18. Come scrivere query hql con cast?
- 19. Hibernate HQL createQuery() lista() cast per modellare direttamente
- 20. Hibernate: come impostare il valore del parametro query NULL con HQL?
- 21. Come aggiungere NOLOCK con nHibernate?
- 22. Come testare le query HQL?
- 23. Aggiorna più colonne in una query Hibernate?
- 24. Come interrogare una data in HQL (Hibernate) con Joda Time?
- 25. NOLOCK con Multithreading
- 26. Riutilizzo di query in Hibernate
- 27. Hibernate HQL: ottenere il conteggio dei risultati senza effettivamente restituirli
- 28. Hibernate HQL casting: java.lang.String non può essere lanciato a java.lang.Enum
- 29. IFNULL equivalente in Hibernate Query Language?
- 30. Hibernate Query vs criteri di prestazione
Grazie, Gary. Sì, stavo cercando letture sporche. I nostri DBA hanno raccomandato NOLOCK per tutti i "seleziona" in quest'area del progetto. I problemi erano, parte degli SQL erano ibernati. – Sarit
Nelle ultime versioni di Hibernate, connection() sembra essere rimosso dall'API. Qualche idea su come un effetto simile può essere ottenuto senza oggetto di connessione? –
Se si utilizza l'annotazione '@ Transactional', può essere specificata come' isolation'-property. – Tobb