JPA、Hibernate Orm (一)

两个可用的练习项目:
hibernate jpa练习项目git
spring data : jpa练习项目

一、注解
二、spring jpa

A Guide to JPA with Spring

1. 基本条件查询
  • 模糊查询
	@Query("from MyUser u where u.name like CONCAT('%',:name,'%')")
	List<MyUser> likeName(@Param("name") String name);
  • Is,Equals
	@Query("from MyUser u where u.name=:name")
	MyUser findMyUser(@Param("name") String name);

	@Query("from MyUser u where u.hobbyList is empty")
	List<MyUser> NoHobbyUser();
  • Between
	@Query("from MyUser u where u.age between :min and :max")
	public List<MyUser> findAllcs(@Param("min") Integer min,@Param("max") Integer max);
  • LessThan
  • LessThanEqual
  • GreaterThan
  • GreaterThanEqual
  • After
  • Before
  • IsNull
  • IsNotNull,NotNull
  • Like
  • NotLike
  • StartingWith
  • EndingWith
  • Containing
  • OrderBy
  • Not
  • In
  • NotIn
  • IgnoreCase
2、高级查询
  • 查询结果创建新对象接收,需存在对应的构造方法
SELECT NEW Employee(e.name, e.salary) ...
  • MEMBER OF运算符和NOT MEMBER OF
查找directs中的Professor列表
SELECT e FROM Professor e WHERE e MEMBER OF e.directs
  • 查询结果 A对象映射到B对象
  TypedQuery<Professor> query = em.createQuery("SELECT e FROM Employee e",
        Professor.class);
    List<Professor> emps = query.getResultList();
  • SIZE函数,查询有2个学生的学校
List l = em.createQuery(
        "SELECT d FROM School d WHERE SIZE(d.students) = 2")
        .getResultList();
  • 多对一,查询部门的员工
List l = em.createQuery("SELECT d.employees FROM Department d")
        .getResultList();
三、Hibernate的save、persist、update、merge和saveOrUpdate

推荐用:persist新增, merge更新

四、常见问题集
1、查询的
使用hql有两种方式,其一:
String hql = "select color,font from css";
Query query = session.createQuery(hql);
List<Object[]> links = query.list();
以上方式能直接拿到结果
其二:spring jpa,考虑直接用List<Object> 作为返回结果
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值