最全jpa 命名规则示例
时间: 2023-11-03 16:05:12 浏览: 135
JPA实例 经典
3星 · 编辑精心推荐
JPA方法命名规则可以根据方法名自动生成查询。以下是JPA方法命名语法规则中的常见规范:
1. 查询方法:
- 通过方法名生成简单查询:findBy/getBy/queryBy/readBy 后面跟要查询的字段名,用于精确匹配。
- find/get/query/read 后面跟要查询的字段名,使用条件表达式进行模糊匹配。
- findAll/getAll 后面不跟字段名,表示查询所有记录。
2. 支持的关键字:
- And:连接多个查询条件,相当于SQL中的AND。
- Or:连接多个查询条件,相当于SQL中的OR。
- Between:用于查询字段在某个范围内的记录。
- LessThan/LessThanEqual:用于查询字段小于某个值的记录。
- GreaterThan/GreaterThanEqual:用于查询字段大于某个值的记录。
- IsNull/IsNotNull:用于查询字段为空或不为空的记录。
- Like/NotLike:用于模糊查询字段值。
- OrderBy:用于指定查询结果的排序方式。
3. 删除方法:
- 通过方法名生成删除查询:deleteBy/removeBy 后面跟要查询的字段名,用于精确匹配。
- delete/remove 后面跟要查询的字段名,使用条件表达式进行模糊匹配。
4. 统计方法:
- 通过方法名生成统计查询:countBy 后面跟要查询的字段名,用于精确匹配。
- count 后面不跟字段名,表示统计所有记录数。
5. 更新方法:
- 通过方法名生成更新查询:updateBy 后面跟要查询的字段名,用于精确匹配。
- update 后面跟要查询的字段名,使用条件表达式进行模糊匹配。
- 支持的关键字:Set:用于设置要更新的字段的值。Where:用于指定更新操作的条件。
以下是一个示例:
```
public interface UserRepository extends JpaRepository<User, Long> {
// 根据用户名查询用户信息
User findByUsername(String username);
// 查询年龄小于等于指定值的用户信息
List<User> findByAgeLessThanEqual(int age);
// 查询用户名以指定字符串开头的用户信息
List<User> findByUsernameStartingWith(String prefix);
// 统计年龄大于指定值的用户数量
long countByAgeGreaterThan(int age);
// 删除用户名包含指定字符串的用户信息
void deleteByUsernameContaining(String keyword);
// 更新用户名为指定值的用户邮箱
@Modifying
@Query("update User u set u.email = :email where u.username = :username")
void updateEmailByUsername(@Param("email") String email, @Param("username") String username);
}
```
阅读全文