JPA и Hibernate - критерии против JPQL или HQL
Существует разница в производительности oraclejdk между HQL и критериями Query: каждый jdk раз, когда вы запускаете hql запрос с помощью критерияqueryQuery, он hql создает новый псевдоним для java имени таблицы, который не .java отражается в последнем запрошенном java-api кэше для какой-либо базы openjdk данных. Это приводит к накладным j2se расходам на компиляцию сгенерированного java-se SQL и требует больше времени core-java для выполнения.
Относительно hibernate стратегий получения [http://www.hibernate.org/315.html]
- Criteria учитывает настройки ленивости в ваших сопоставлениях и гарантирует, что то, что вы хотите загрузить, будет загружено. Это означает, что один запрос Criteria может привести к нескольким операторам SQL Direct SELECT для выборки подграфа со всеми неленивыми сопоставленными ассоциациями и коллекциями. Если вы хотите изменить «как» и даже «что», используйте setFetchMode(), чтобы включить или отключить выборку внешнего соединения для конкретной коллекции или ассоциации. Критериальные запросы также полностью соответствуют стратегии выборки (присоединение против выбора против подзапроса).
- HQL учитывает настройки лени в ваших сопоставлениях и гарантирует, что то, что вы хотите загрузить, будет загружено. Это означает, что один запрос HQL может привести к нескольким SQL-операторам немедленного выбора SELECT для выборки подграфа со всеми неленивыми сопоставленными ассоциациями и коллекциями. Если вы хотите изменить «как» и даже «что», используйте LEFT JOIN FETCH, чтобы разрешить извлечение внешнего соединения для конкретной коллекции или обнуляемую ассоциацию «многие-к-одному» или «один-к-одному», или JOIN FETCH, чтобы включить выборка внутреннего соединения для не допускающей обнуления ассоциации "многие к одному" или "один к одному". Запросы HQL не принимают во внимание какие-либо fetch = "join", определенные в документе сопоставления.
java
hibernate
hql
criteria
hibernate-criteria
JPA и Hibernate - критерии против JPQL или HQL
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.