JPA、Hibernate等ORM框架。

   mybatis是很流行,非常方便的动态sql,但是也因为有xml的SQL文件,是其他框架的优势显示出来了,比如Hibernate。

这些框架的目的就是干掉SQL,现在看来任重道远。

  简单的crud操作很容易,但是对于嵌套的查询语句,多表查询语句,以及条件查询语句,这些都很复杂,

@Repository
public interface UserRepository extends JpaRepository<User, Long> , JpaSpecificationExecutor<User>{

    /**
     * 根据多个过滤条件查询用户
     * @param sex, 性别, 如果为null表示不限制性别, 查询所有性别;
     * @param minAge, 年龄下限, 如果小于零表示不限制年龄
     * @param maxAge, 年龄上限
     * @param deptIds, 部门id的list, 一定不能为空, 包含-1L表示查询所有部门
     * @return
     */
    @Query("select user from User user where" +
        "(:sex is null or user.sex = :sex) and" +
        "(:minAge < 0 or (user.age>=:minAge and user.age<=:maxAge) ) and" +
        "(-1L in :deptIds or user.dept.id in :deptIds)")
    List<User> findUser(String sex,Integer minAge,Integer maxAge,List<Long> deptIds);

}

 参考博文:jpa的动态sql


 
posted @ 2018-06-28 17:01  懂得了才能做一些改变  阅读(208)  评论(0编辑  收藏  举报