ing*_*nia 5 java spring query-by-example spring-data spring-data-jpa
QueryByExampleExecutor<T>Spring数据JPA中这个接口的方法有哪些用例。我用谷歌搜索,发现的只是官方文档。
也许有人可以通过示例为我指出正确的资源。
特别是findAll(Example<S> example, Pagable pageable),该界面是否是一种更简单的搜索、分页和排序方式?
Spring Data JPA 示例查询技术使用Examples 和ExampleMatchers 将实体实例转换为底层查询。当前的官方文档有几个有用的示例。这是我受文档启发的示例:
人.java
\n\npublic class Person {\n\n @Id\n private String id;\n private String firstname;\n private String lastname;\n private Address address;\n\n // \xe2\x80\xa6 getters and setters omitted\n}\nRun Code Online (Sandbox Code Playgroud)\n\nPersonResource.java:
\n\n@RestController\n@RequestMapping("/api")\npublic class PersonResource {\n\n@GetMapping("/persons/{name}")\n@Timed\npublic ResponseEntity<List<Person>> getPersons(@ApiParam Pageable pageable, @PathVariable String name) {\n log.debug("REST request to get Person by : {}", name);\n Person person = new Person(); \n person.setFirstname(name); \n Page<Person> page = personRepository.findAll(Example.of(person), pageable);\n HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(page, "/api/persons");\n return new ResponseEntity<>(page.getContent(), headers, HttpStatus.OK);\n}\nRun Code Online (Sandbox Code Playgroud)\n
来自 Spring 文档Example:
\n\n\n支持示例查询 (QBE)。示例采用探针来定义示例。可以使用ExampleMatcher 调整匹配选项和类型安全性。
\n
因此,此类和接口是 Spring Data 的示例查询QueryByExampleExecutor范例实现的一部分。
\n\n\nQuery by Example (QBE) 是一种用于关系数据库的数据库查询语言。它是由 IBM 研究中心的 Mosh\xc3\xa9 M. Zloof 在 20 世纪 70 年代中期设计的,与 SQL 的开发同时进行。它是第一种图形查询语言,使用可视表,用户可以在其中输入命令、示例元素和条件。
\n
最后,您引用的方法的文档#findAll说明如下:
\n\n\n\n
<S extends T> Page<S> findAll(Example<S> example, Pageable pageable)
\n 返回Page匹配给定的实体Example。如果找不到匹配项,Page则返回空。
因此,本质上 QBE 代表了一种使用更自然、基于模板的查询语法(而不是使用 SQL)来查询关系数据库的方法,并且 Spring Data 有一个支持这种方式的 API。
\n| 归档时间: |
|
| 查看次数: |
7593 次 |
| 最近记录: |