关于springboot:重识CurdRepository

47次阅读

共计 1775 个字符,预计需要花费 5 分钟才能阅读完成。

序言

有一个需要:判断数据库中是否存在 name 为 xxx 的数据。因为在记忆中抹除了对于 CurdRepository 的提供的办法。所以在实现该性能的时候并没有想到 findByxxx 办法。

问题再现

需要

判断数据库中是否有相应的 name,如果有 name 则返回 false,否则为 true;

我的实现办法

  @Override
  public Boolean existByName(String name) {
    // 调用 findOne 办法,获取数据库中 name 属性为 name 的数据(不止一条则会报错)// TownSpecs.equalName(name)结构查问条件
    Optional<Town> result = this.townRepository.findOne(TownSpecs.equalName(name));
    return this.townRepository.findOne(TownSpecs.equalName(name)).isPresent();}

CurdRepository

在教程学习的时候始终在应用它,却没有去想它的作用,为啥要内置一个 CurdRepository?
为啥像 PagingAndSortingRepository 都继承了它?那么它作用到底是啥?

curd


翻译后恍然大悟!
猜想是负责内置增删改查办法的库!

验证

看官网文档:没有想要的后果:都是如下的根本办法

发现关键字派生:derive

按关键字 spring data crudrepository derive 进行 google 搜寻,第一条就是想要的:

1. Structure of Derived Query Methods in Spring

1.Derived method names have two main parts separated by the first By keyword:
派生办法名称有两个次要局部,由第一个 by 关键字分隔:

例如:List<User> findByName(String name)

依据 name 进行查问

2.We can also use Distinct, First, or Top to remove duplicates or limit our result set:
咱们还能够应用 Distinct、First 或 Top 删除反复项或限度后果集:我的项目中曾经用到过了

3.Equality Condition Keywords
相等条件关键字

List<User> findByNameIs(String name);
List<User> findByNameEquals(String name);

4. Similarity Condition Keywords
类似条件关键字

教程中咱们曾见过:初识综合查问

public interface StudentRepository extends PagingAndSortingRepository<Student, Long>, JpaSpecificationExecutor {Page<Student> findAllByNameContains➊AndSnoStartsWith➋AndKlass➌(String name①, String sno②, Klass klass③, Pageable pageable);
} 

5. Comparison Condition Keywords
比拟条件

List<User> findByAgeLessThan(Integer age);
List<User> findByAgeLessThanEqual(Integer age);

6. Multiple Condition Expressions
多条件表达式
7. Sorting the Results
将后果排序

弊病

间接应用后盾教程的解释:初始综合查问

会失去如下报错

org.springframework.dao.InvalidDataAccessApiUsageException: Value must not be null!; nested exception is java.lang.IllegalArgumentException: Value must not be null!

再回头看需要:前台只有输出,才会发动异步验证,那么 name 必然不为空,能够合乎这种状况。

总结

学习的时候光记得 CurdRepository 有个毛病,就缓缓在本人记忆中忘记,然而也有像以后这种需要可能呈现。

正文完
 0