Spring Data JPA用法

官网文档
1,常规查询
@ToString
@Getter
@Setter
@Entity
@Table(name="user")
@ApiModel
@JsonIgnoreProperties
public class User implements Serializable {
   @Id
   private int qq;
   ...
   //如果命名规范,不加@Column也可以
}

@Repository
public interface UserDao extends JpaRepository<User,Integer> {
    //查询数量
    long countByArea(int area);

    //save和saveAndFlush 都支持插入和更新
    // save不会立刻提交到数据库,可能只是修改在内存中的;saveAndFlush则立刻提交生效
    //实体包含主键时执行更新,没有被赋值的字段会被null覆盖,所以一般是先获取数据库对象再修改保存,要么就自定义sql
    @Override
    User saveAndFlush(User user);

    //通过指定字段内容查找,可连接AND、OR、LIKE、IS等
    //实体属性不加@Column时,数据库字段user_name  必须使用驼峰命名userName
    List<User> getByUserName(String s);

    //输入字段必须与实体中定义类型保持一致
    List<User> getByCreateTimeAfter(Date s);
    
    //在执行update或者delete方法时,必须加上注解@Modifying 和 @Transactional。
    @Transactional
    @Modifying
    @Query("update User set password=:password where qq=:qq ")
    Integer updateUserPassword(@Param("qq") int qq, @Param("password") String password);
    
    //分页排序
    //like语句传参手动加%    pageable的page从0开始
    Page<User> getByUserNameLike(String username, Pageable pageable);
    List<User> getByUserNameLike(String username, Sort sort);
}

@Test
public void japtest() {
    //查询指定时间之后注册的用户
	Date a = new Date(2019,3,30);
	List<User> aa = dao.getByCreateTimeAfter(a);
    
    //名称包含99,按照prov排序的第一页,,每页2条,默认升序
	Page<User> bb = dao.getByUserNameLike("%99",PageRequest.of(0, 2,Sort.by("prov")));
	Page<User> cc = dao.getByUserNameLike("%99",PageRequest.of(0, 2,Sort.by(Sort.Direction.DESC,"prov")));
	
	//按照prov和username倒序排列
	List<String> sortProperties = new ArrayList<>();
	sortProperties.add("prov");
	sortProperties.add("username");
	Sort sort = new Sort(Sort.Direction.DESC,sortProperties);
	List<User> dd = dao.getByUserNameLike("%99",sort);
	
	System.out.println("-----------------"+cc.getSize());
	for (User u:cc.getContent()) {
		System.out.println(u.toString());
	}
}
2,复杂查询
用到再补充
3,接口名关键字

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

占星安啦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值