首页>代码>springdata jpa 1.7.0.RELEASE各种查询方法总结demo大全,通过junit测试>/springdata_jpa_demo/src/main/java/com/zuidaima/springdata/service/impl/UserServiceImpl.java
package com.zuidaima.springdata.service.impl; import java.util.ArrayList; import java.util.List; import javax.annotation.Resource; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Path; import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Root; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort.Direction; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import com.zuidaima.springdata.entity.User; import com.zuidaima.springdata.repository.UserRepository; import com.zuidaima.springdata.service.UserService; /** * *@author javaniu 2013-06-04 22:27:23 */ @Service public class UserServiceImpl implements UserService { @Resource public UserRepository userRepository; @Override public User findOneByName(final String name) { Specification<User> specification = new Specification<User>() { @Override public Predicate toPredicate(Root<User> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) { Predicate _name = criteriaBuilder.equal(root.get("name"), name); return criteriaBuilder.and(_name); } }; return userRepository.findOne(specification); } @Override public Page<User> findAllByLargeThanId(final Long id, int page, int count, Sort sort) { Specification<User> specification = new Specification<User>() { @Override public Predicate toPredicate(Root<User> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) { Path<Long> $id = root.get("id"); Predicate _id = criteriaBuilder.gt($id, id); return criteriaBuilder.and(_id); } }; Pageable pageable = new PageRequest(page - 1, count, sort); return userRepository.findAll(specification, pageable); } @Override public User findAllByIdAndName(final Long id, final String name) { Specification<User> specification = new Specification<User>() { @Override public Predicate toPredicate(Root<User> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) { List<Predicate> predicates = new ArrayList<Predicate>(); Path<Long> $id = root.get("id"); Predicate _id = criteriaBuilder.equal($id, id); predicates.add(_id); Path<Long> $name = root.get("name"); Predicate _name = criteriaBuilder.equal($name, name); predicates.add(_name); return criteriaBuilder.and(predicates .toArray(new Predicate[] {})); } }; return userRepository.findOne(specification); } @Override public Page<User> findAllByLikeName(final String name, int page, int count) { Specification<User> specification = new Specification<User>() { @Override public Predicate toPredicate(Root<User> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) { Path<String> _name = root.get("name"); Predicate _key = criteriaBuilder.like(_name, "%" + name + "%"); return criteriaBuilder.and(_key); } }; Sort sort = new Sort(Direction.DESC, "id"); Pageable pageable = new PageRequest(page - 1, count, sort); return userRepository.findAll(specification, pageable); } @Override public Page<User> findAllByInIds(final List<Long> ids) { Specification<User> specification = new Specification<User>() { @Override public Predicate toPredicate(Root<User> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) { return criteriaBuilder.in(root.get("id")).value(ids); } }; int page = 1; int count = ids.size(); Sort sort = new Sort(Direction.DESC, "id"); Pageable pageable = new PageRequest(page - 1, count, sort); return userRepository.findAll(specification, pageable); } @Override public List<User> findAllByIds(List<Long> ids) { return userRepository.findAllByIds(ids); } @Override public User findAllByName(String name) { return userRepository.findAllByName(name); } }
最近下载更多
hait69396 LV8
2018年11月3日
13699231229 LV2
2018年4月25日
1119616605 LV18
2018年2月25日
BigBean LV2
2017年9月19日
lingdu5h LV3
2017年9月6日
der2030 LV17
2017年8月3日
jinbiao5 LV3
2017年6月29日
xiaoxinwt LV10
2017年6月28日
vitalist LV10
2017年6月19日
lisinian LV6
2017年6月14日
最近浏览更多
fengshengtian LV8
2022年2月26日
鑫
2021年11月11日
暂无贡献等级
253702090 LV3
2021年8月15日
徐万强 LV9
2021年6月2日
dieudonne LV8
2021年3月2日
liudcc LV5
2021年1月19日
Coincidance LV8
2020年12月3日
gepanjiang
2020年10月23日
暂无贡献等级
As youi wish LV1
2020年9月2日
猴哥猴哥 LV12
2020年5月18日