SpringBoot中JPA方法命名规则

Spring Data JPA 提供了一种基于方法名的查询创建机制,允许通过定义 Repository 接口中的方法名称来自动创建对应的数据库查询语句。

这种方法避免了硬编码 SQL 语句,提高了开发效率和代码的可读性。

以下是 Spring Data JPA 方法命名规则的一些关键点:

1、基础规则

        实体类属性:方法名中包含的实体类属性名称,将被转换成 SQL 查询中的列名。

        关键字:方法名中包含的关键字用于构建 SQL 查询的条件部分。

2、关键字

        find 或 get:用于指定查询操作。

        by:用于连接属性名称,可以省略。

        And、Or:用于连接多个查询条件,区分大小写。

        Not:用于表示否定条件。

        Between:用于表示范围查询。

        LessThan、GreaterThan:用于比较操作。

        Like:用于模糊匹配。

        StartingWith、EndingWith、Containing:用于字符串匹配。

        IsNull、IsNotNull:用于检查属性是否为空。

        OrderBy:用于排序,后跟属性名称和方向(Asc 或 Desc)。

3、示例:

        findAll():查询所有记录。

        findByUsername(String username):根据用户名查询记录。

        findByUsernameAndEmail(String username, String email):根据用户名和邮箱查询记录。

        findByUsernameOrEmail(String username, String email):根据用户名或邮箱查询记录。

        findByAgeGreaterThan(int age):查询年龄大于指定值的记录。

        findByLastNameStartingWith(String prefix):查询姓氏以指定前缀开始的记录。

        findByLastNameContaining(String substring):查询姓氏包含子串的记录。

        findByLastNameOrderByFirstNameAsc(String lastName):按名字升序查询姓氏相同的记录。

4、复杂查询

        对于更复杂的查询,可以结合使用多个关键字和属性。

        例如:
                findByLastNameContainingAndAgeGreaterThan(String lastName, int age):查询姓氏包含特定子串且年龄大于指定值的记录。

5、特殊情况

        如果实体类中的属性名与方法名中的关键字冲突,可以在属性名前加上_或()来区分。

        例如findByUser_Name(String name)。

        可以使用@Query注解来覆盖默认的查询行为,直接编写 JPQL 或原生 SQL 查询。

  • 15
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值