添加:save(对象)
删除:delete(主键或者带有主键的对象)
修改:save(对象)
对象中没有id,执行添加操作
对象中有id
id不存在:执行添加
id存在:
其余数据与数据库中一致,只发送查询
其余数据与数据库中不一致,发送更新语句
查询
查询某一个findOne(主键) 及时加载
查询某一个getOne(主键) 懒加载
使用过程中会报no session问题,需要追加@Transactional
查询某一个findOne(动态参数)
@Test
public void find() {
Specification<User> spec = new Specification<User>() {
@Override
public Predicate toPredicate(Root<User> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder cb) {
Path<Object> username = root.get("username");
Path<Object> id = root.get("id");
Path<Object> age = root.get("age");
Predicate p1 = cb.equal(username, 1111);
Predicate p2 = cb.equal(id, 1);
Predicate p3 = cb.equal(age, 18);
Predicate[] ps = new Predicate[3];
ps[0] = p1;
ps[1] = p2;
ps[2] = p3;
Predicate predicate = cb.and(ps);
return predicate;
}
};
User user = userDao.findOne(spec);
System.out.println(user);
}
查询所有findAll()
查询所有并排序findAll(sort)
Sort sort = new Sort(Sort.Direction.DESC,"id");
List<User> userList = userdao.findAll(sort);
查询所有并分页findAll(pageable)
Pageable pageable = new PageRequest(0,5);
Page<User> page = userdao.findAll(pageable);
动态查询所有并分页findAll(动态参数,pageable)
参考查询某一个findOne(动态参数)