注意除了 find 的前缀之外,我们查看 PartTree 的源码,还有如下几种前缀:
private static final String QUERY_PATTERN = "find|read|get|query|stream";
private static final String COUNT_PATTERN = "count";
private static final String EXISTS_PATTERN = "exists";
private static final String DELETE_PATTERN = "delete|remove";
使用的时候要配合不同的返回结果进行使用,例如:
interface UserRepository extends CrudRepository<User, Long> {long countByLastname(String lastname);//查询总数long deleteByLastname(String lastname);//根据一个字段进行删除操作List<User> removeByLastname(String lastname);
}
大家也可以通过 Intellij IDEA :Edit -> Find -> Find In Path 工具查找到关键字对应的枚举在哪个类里面,如下:
所以在这里作者介绍一工作中的小技巧,直接查看源码就可以知道框架支持了哪些关键字。
Type 枚举的关键源码如下:
public static enum Type {BETWEEN(2, new String[]{"IsBetween", "Between"}),IS_NOT_NULL(0, new String[]{"IsNotNull", "NotNull"}),IS_NULL(0, new String[]{"IsNull", "Null"}),LESS_THAN(new String[]{"IsLessThan", "LessThan"}),LESS_THAN_EQUAL(new String[]{"IsLessThanEqual", "LessThanEqual"}),GREATER_THAN(new String[]{"IsGreaterThan", "GreaterThan"}),GREATER_THAN_EQUAL(new String[]{"IsGreaterThanEqual", "GreaterThanEqual"}),BEFORE(new String[]{"IsBefore", "Before"}),AFTER(new String[]{"IsAfter", "After"}),NOT_LIKE(new String[]{"IsNotLike", "NotLike"}),LIKE(new String[]{"IsLike", "Like"}),STARTING_WITH(new String[]{"IsStartingWith", "StartingWith", "StartsWith"}),ENDING_WITH(new String[]{"IsEndingWith", "EndingWith", "EndsWith"}),IS_NOT_EMPTY(0, new String[]{"IsNotEmpty", "NotEmpty"}),IS_EMPTY(0, new String[]{"IsEmpty", "Empty"}),NOT_CONTAINING(new String[]{"IsNotContaining", "NotContaining", "NotContains"}),CONTAINING(new String[]{"IsContaining", "Containing", "Contains"}),NOT_IN(new String[]{"IsNotIn", "NotIn"}),IN(new String[]{"IsIn", "In"}),NEAR(new String[]{"IsNear", "Near"}),WITHIN(new String[]{"IsWithin", "Within"}),REGEX(new String[]{"MatchesRegex", "Matches", "Regex"}),EXISTS(0, new String[]{"Exists"}),TRUE(0, new String[]{"IsTrue", "True"}),FALSE(0, new String[]{"IsFalse", "False"}),NEGATING_SIMPLE_PROPERTY(new String[]{"IsNot", "Not"}),SIMPLE_PROPERTY(new String[]{"Is", "Equals"});
....}