# SpringBoot项目记录
![image-20220426215512929](https://mybolg-typora.oss-cn-beijing.aliyuncs.com/image-20220426215512929.png)
**IDEA的提示**
![](https://mybolg-typora.oss-cn-beijing.aliyuncs.com/image-20220426220049928.png)
看一看案例,还是疏忽大意,这里的字段`hoscode`和`hosScheduleId`在方法体重均要首字母大写。
```java
@Repository
public interface ScheduleRepository extends MongoRepository<Schedule, String>
{
//正确的查询代码
//根据医院编号和排班编号查询排班
Schedule getScheduleByHoscodeAndHosScheduleId(String hoscode, String hosScheduleId);
//错误案例 hoscode解析错误,不符合规则
Schedule getScheduleByhoscodeAndHosScheduleId(String hoscode, String hosScheduleId);
//错误案例 Depcode解析错误,参数无depcode
Schedule getScheduleByDepcodeAndHosScheduleId(String hoscode, String hosScheduleId);
}
```
来回顾一下Spring Data MongoDB中关于Spring Data Query的正确语法规则
#### 8.4.2.查询创建
Spring Data存储库基础结构中内置的查询构建器机制对于构建对存储库实体的约束查询非常有用。该机制从方法中删除前缀`find…By`,`read…By`,`query…By`,`count…By`和`get…By`并开始解析其余部分。introduction子句可以包含更多表达式,例如`Distinct`,用于在要创建的查询上设置不同的标志。但是,第一个`By`充当分隔符以指示实际标准的开始。在最基本的层面上,您可以在实体属性上定义条件,并将它们与`And`和`Or`连接起来。以下示例显示了如何创建大量查询:
示例13.从方法名称创建查询
```java
public interface PersonRepository extends Repository<User, Long> {
List<Person> findByEmailAddressAndLastname(EmailAddress emailAddress, String lastname);
// Enables the distinct flag for the query
List<Person> findDistinctPeopleByLastnameOrFirstname(String lastname, String firstname);
List<Person> findPeopleDistinctByLastnameOrFirstname(String lastname, String firstname);
// Enabling ignoring case for an individual property
List<Person> findByLastnameIgnoreCase(String lastname);
// Enabling ignoring case for all suitable properties
List<Person> findByLastnameAndFirstnameAllIgnoreCase(String lastname, String firstname);
// Enabling static ORDER BY for a query
List<Person> findByLastnameOrderByFirstnameAsc(String lastname);
List<Person> findByLastnameOrderByFirstnameDesc(String lastname);
}
```
Spring Data存储库基础结构中内置的查询构建器机制对于构建对存储库实体的约束查询非常有用。该机制从方法中删除前缀`find…By`,`read…By`,`query…By`,`count…By`和`get…By`并开始解析其余部分。
重点理解上面的话含义
[重点阅读API文档源码](https://docs.spring.io/spring-data/mongodb/docs/current/api/)
org.springframework.data.mongodb.core.mapping
![image-20220426232654880](https://mybolg-typora.oss-cn-beijing.aliyuncs.com/image-20220426232654880.png)
## 参考
[SpringDataMongoDB源码解读1](https://www.shuzhiduo.com/A/n2d9bgKwzD/)
[SpringDataMongoDB源码解读2](https://www.shuzhiduo.com/A/n2d9bgKwzD/)
[SpringDataMongo使用手册](https://www.springcloud.cc/spring-data-mongodb.html#preface)
项目记录中MongoDB的Bug的排查