内容简介:当不能直接提取时,我们可以考虑JPQL / HQL查询提取。本文的应用程序展示如何通过JpaRepository,EntityManager和Session实现查询概念的证明。关键点:
当不能直接提取时,我们可以考虑JPQL / HQL查询提取。
本文的应用程序展示如何通过JpaRepository,EntityManager和Session实现查询概念的证明。
关键点:
- 对于JpaRepository, 使用@Query或Spring Data Query Creation
- 对于EntityManager和Session, 使用该createQuery()方法
源代码可以在 这里 找到
JpaRepository:
@Repository <b>public</b> <b>interface</b> UserRepository <b>extends</b> JpaRepository<User, Long> { @Transactional(readOnly = <b>true</b>) List<User> findByName(String name); @Transactional(readOnly = <b>true</b>) @Query(<font>"select u from User u where u.name = ?1"</font><font>) List<User> fetchUsersByName(String name); } </font>
@Repository @Transactional(readOnly = <b>true</b>) <b>public</b> <b>class</b> Dao<T, ID <b>extends</b> Serializable> implements GenericDao<T, ID> { @PersistenceContext <b>private</b> EntityManager entityManager; @Override <b>public</b> List<T> findByName(String name) { List<T> results = entityManager. createQuery(<font>"select u from User u where u.name=:name"</font><font>) .setParameter(</font><font>"name"</font><font>, name) .getResultList(); <b>return</b> results; } @Override <b>public</b> List<T> findByNameViaSession(String name) { Session session = entityManager.unwrap(Session.<b>class</b>); List<T> results = session.createQuery(</font><font>"select u from User u where u.name=:name"</font><font>) .setParameter(</font><font>"name"</font><font>, name) .list(); <b>return</b> results; } } </font>
以上所述就是小编给大家介绍的《如何使用Hibernate/JPA的JPQL/HQL查询提取?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 关于使用Tshark提取IP字段
- 使用单个Windows命令从文件中提取N行
- javascript – 使用jQuery获取url并提取url段
- Python爬虫十六式 - 第四式: 使用Xpath提取网页内容
- 如何使用RansomCoin从源码文件中提取加密货币地址以及其他IoC
- [译]使用 Python 的 Pandas 和 Seaborn 框架从 Kaggle 数据集中提取信息
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。