如何使用Hibernate/JPA的JPQL/HQL查詢提取?
當不能直接提取時,我們可以考慮JPQL / HQL查詢提取。
本文的應用程式展示如何透過JpaRepository,EntityManager和Session實現查詢概念的證明。
關鍵點:
- 對於JpaRepository, 使用@Query或Spring Data Query Creation
- 對於EntityManager和Session, 使用該createQuery()方法
原始碼可以在這裡找到
JpaRepository:
@Repository public interface UserRepository extends JpaRepository<User, Long> { @Transactional(readOnly = true) List<User> findByName(String name); @Transactional(readOnly = true) @Query("select u from User u where u.name = ?1") List<User> fetchUsersByName(String name); } |
@Repository @Transactional(readOnly = true) public class Dao<T, ID extends Serializable> implements GenericDao<T, ID> { @PersistenceContext private EntityManager entityManager; @Override public List<T> findByName(String name) { List<T> results = entityManager. createQuery("select u from User u where u.name=:name") .setParameter("name", name) .getResultList(); return results; } @Override public List<T> findByNameViaSession(String name) { Session session = entityManager.unwrap(Session.class); List<T> results = session.createQuery("select u from User u where u.name=:name") .setParameter("name", name) .list(); return results; } } |
相關文章
- hibernate中hql查詢
- 391、Java框架46 -【Hibernate - 查詢HQL、查詢Criteria、查詢標準SQL】 2020.10.19Java框架SQL
- 如何在Hibernate/JPA的實體和查詢中使用Java 8 Optional?Java
- Spring Data Jpa 的簡單查詢多表查詢HQL,SQL ,動態查詢, QueryDsl ,自定義查詢筆記SpringSQL筆記
- 如何在SpringBoot中使用Hibernate/JPA的@NaturalId?Spring Boot
- JPA之使用JPQL進行CRUD操作
- Hibernate 查詢
- Spring Data JPA基本增刪改查和JPQL查詢(含完整程式碼和視訊連線)Spring
- Hibernate/JPA中@OneToOne和@MapsId的使用
- 使用Hibernate、JPA、Lombok遇到的有趣問題Lombok
- hibernate查詢的方式 都有哪些
- hibernate的三種查詢方式
- JPA與hibernate-------JPA01
- 如何透過javax.persistence.Tuple和JPQL提取DTO?Java
- spring data JPA 模糊查詢 --- 使用 LIKE --- 的寫法Spring
- spring data jpa查詢Spring
- JPA 連表查詢
- JPA的多表複雜查詢
- Hibernate-ORM:13.Hibernate中的連線查詢ORM
- Hibernate查詢自動更新
- Spring JPA 聯表查詢Spring
- JPA多表關聯查詢
- jpa一對多查詢
- JPA時間段查詢
- 如何啟用Hibernate慢查詢日誌? -Vlad Mihalcea
- jpa動態查詢與多表聯合查詢
- Hibernate/JPA中如何合併實體集合?
- Spring Boot中使用JPA構建動態查詢Spring Boot
- SpringBoot Jpa多條件查詢Spring Boot
- Spring JPA 定義查詢方法Spring
- JPA 之 多表聯合查詢
- 關於Hibernate和hql語句的相關知識點
- 如何透過Hibernate/JPA的SqlResultSetMapping生成需要資料的DTO?SQLAPP
- Hibernate【查詢、連線池、逆向工程】
- jpa 聯合查詢資料,查詢使用者資訊與部門資訊
- 淺談JPA二:聊聊Hibernate
- Hibernate/JPA如何保證不生成多餘的SQL語句?SQL
- hibernate異常之--count查詢異常