您的位置:首页 > 编程语言 > Java开发

Spring JPA经验汇总

2016-06-15 00:00 441 查看
摘要: Spring JPA经验汇总

组合条件查询

Specification<UserModel> spec = new Specification<UserModel>() {

public Predicate toPredicate(Root<UserModel> root,

CriteriaQuery<?> query, CriteriaBuilder cb) {

Predicate p1 = cb.like(root.get("name").as(String.class), "%"+um.getName()+"%");

Predicate p2 = cb.equal(root.get("uuid").as(Integer.class), um.getUuid());

Predicate p3 = cb.gt(root.get("age").as(Integer.class), um.getAge());

//把Predicate应用到CriteriaQuery中去,因为还可以给CriteriaQuery添加其他的功能,比如排序、分组啥的

query.where(cb.and(p3,cb.or(p1,p2)));

//添加排序的功能

query.orderBy(cb.desc(root.get("uuid").as(Integer.class)));

return query.getRestriction();

}

};

repository.findAll(specification, pageable)

关于lazy的数据获取方法
http://www.thoughts-on-java.org/5-ways-to-initialize-lazy-relations-and-when-to-use-them/?spm=5176.100239.blogcont2378.10.s1rcFf&utm_source=rebellabs&utm_medium=post&utm_campaign=Rebellabs%20JPA%202.1%20Efficiency
jpa 2.1
http://blog.csdn.net/wang_jingj/article/details/51280415
JPQL 执行update,delete时报错

org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations

需要在@Query前增加@Modifying和@Transactional

JPQL查询条件含有in,多个in时报错:HQL unexpected AST node: {vector}

把in变量加上括号 cp.authorsDept in (?1)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: