JPQL 查询 user 表

笔记/Java/Java 持久层/Hibernate/JPQL 查询 user 表

前置:事务实战

HqlDemo.java#

package demo.hibernate;
import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityManagerFactory;
import jakarta.persistence.TypedQuery;
import java.util.List;
public class HqlDemo {
public static void main(String[] args) {
EntityManagerFactory emf = Jpa.createEntityManagerFactory();
EntityManager em = emf.createEntityManager();
try {
TypedQuery<User> byName = em.createQuery(
"select u from User u where u.userName like :kw order by u.id",
User.class);
byName.setParameter("kw", "%li%");
List<User> list = byName.getResultList();
System.out.println("like %li% :");
list.forEach(System.out::println);
Long count = em.createQuery("select count(u) from User u where u.status = 1", Long.class)
.getSingleResult();
System.out.println("active users count=" + count);
} finally {
em.close();
emf.close();
}
}
}

运行#

Terminal window
mvn -q exec:java -Dexec.mainClass=demo.hibernate.HqlDemo

JPQL 查的是实体 User 与属性 userName,Hibernate 会翻译成 user.user_name 列上的 SQL。

对比 MyBatis(手写 SQL)与 MyBatis-Plus CRUDBaseMapper 生成单表 SQL)。

文章目录

文章目录