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 @   懂得了才能做一些改变  阅读(209)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示