https://github.com/holmofy/spring-data-criteria
`Spring Data Criteria` extends Spring Data JDBC & R2DBC & JPA to support dynamic sql
https://github.com/holmofy/spring-data-criteria
annotation-processor dynamic-sql jpamodelgen model-generator spring spring-data spring-data-jdbc spring-data-jpa spring-data-r2dbc spring-jdbc sql
Last synced: 3 months ago
JSON representation
`Spring Data Criteria` extends Spring Data JDBC & R2DBC & JPA to support dynamic sql
- Host: GitHub
- URL: https://github.com/holmofy/spring-data-criteria
- Owner: holmofy
- License: apache-2.0
- Created: 2022-12-29T09:18:59.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-10-04T09:39:03.000Z (over 1 year ago)
- Last Synced: 2025-02-28T00:51:17.338Z (3 months ago)
- Topics: annotation-processor, dynamic-sql, jpamodelgen, model-generator, spring, spring-data, spring-data-jdbc, spring-data-jpa, spring-data-r2dbc, spring-jdbc, sql
- Language: Java
- Homepage:
- Size: 90.8 KB
- Stars: 16
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://repo1.maven.org/maven2/io/github/holmofy/)
`Spring Data Criteria` extends Spring Data JDBC & Spring Data R2DBC & Spring Data JPA to support dynamic sql.
to see [`DATAJDBC-319`](https://github.com/spring-projects/spring-data-relational/issues/542), [`DATAJPA-2724`](https://github.com/spring-projects/spring-data-jpa/issues/2724).
The usage is as follows:
```java
public interface UserDao extends ListCrudRepository, CriteriaExecutor {
default Page searchByQuery(UserQuery query, Pageable pageable) {
return findAll(Criteria.from(eq(User_.province, query.province))
.and(eq(User_.city, query.city))
.and(like(User_.area, query.area))
.and(like(User_.name, query.nick))
.and(between(User_.created, query.createFrom, query.createTo))
, pageable);
}
}
```It will dynamically generate sql based on whether the query field is empty.
## How to use
* [Using it with `spring-data-jdbc`](./spring-data-criteria-jdbc)
* [Using it with `spring-data-jpa`](./spring-data-criteria-jpa)
* [Using it with `spring-data-r2dbc`](./spring-data-criteria-r2dbc)