Springboot整合Jpa,Repository 用法详解

jpa的各种Repository使用示例速查如下:

1. 使用jpa的 CrudRepository 基本查询

/**
 * @author yawn < http://jvm123.com >
 * 2019/9/15 15:18
 */
public interface PersonCrudRepo extends CrudRepository<Person, Long> {

}

2. 使用jpa的 PagingAndSortingRepository 分页查询和排序

/**
 * @author yawn < http://jvm123.com >
 * 2019/9/15 15:18
 */
public interface PersonPageSortRepo extends PagingAndSortingRepository<Person, Long> {

}

3. 使用jpa的 Repository 自定义声明式查询方法

/**
 * @author yawn < http://jvm123.com >
 * 2019/9/15 15:18
 */
public interface PersonQueryRepo extends Repository<Person, Long> {

    // declare query method
    // 声明式查询方法

    // 1. count 计数
    long countByName(String name);

    // 2. get/find/stream/query/read 查询
    Person readFirstByAge(int age);

    // 3. delete/remove 删除
    @Transactional
    int deleteById(long id);

}

4. 使用jpa的 JpaRepository 使用hql、jpql或sql查询,@Query等注解

/**
 * @author yawn < http://jvm123.com >
 * 2019/9/15 17:02
 */
public interface PersonHqlDao extends JpaRepository<Person, Long> {

    // 使用hql 或者 jpql 查询
    @Query("from Person where name = ?1 order by id desc")
    List<Person> listByName(String name);

    // 前几种方法中均未介绍update操作,要完成update操作,可使用以下方法
    // 更新时需要加上 @Transactional 和 @Modifying
    @Transactional
    @Modifying // QueryExecutionRequestException: Not supported for DML operations
    @Query("update Person set name=?2 where id=?1")
    int updateNameById(long id, String name);
}

更多请参考http://jvm123.com/category/backtech/Jpa

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值