Skip to content

Commit

Permalink
feat: 2.0.28
Browse files Browse the repository at this point in the history
  • Loading branch information
xuejmnet committed Jun 13, 2024
1 parent 894cf0c commit f4fcd8d
Show file tree
Hide file tree
Showing 34 changed files with 144 additions and 83 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<groupId>com.easy-query</groupId>
<artifactId>easy-query-all</artifactId>
<packaging>pom</packaging>
<version>2.0.27</version>
<version>2.0.28</version>
<name>easy-query</name>
<description>java object query distributed connector</description>
<url>https://github.com/xuejmnet/easy-query</url>
Expand Down
8 changes: 4 additions & 4 deletions samples/console-demo/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>com.easy-query</groupId>
<artifactId>samples</artifactId>
<version>2.0.27</version>
<version>2.0.28</version>
</parent>

<artifactId>console-demo</artifactId>
Expand All @@ -22,21 +22,21 @@
<dependency>
<groupId>com.easy-query</groupId>
<artifactId>sql-mysql</artifactId>
<version>2.0.27</version>
<version>2.0.28</version>
<scope>compile</scope>
</dependency>
<!-- apt生成代理类 -->
<dependency>
<groupId>com.easy-query</groupId>
<artifactId>sql-processor</artifactId>
<version>2.0.27</version>
<version>2.0.28</version>
<scope>compile</scope>
</dependency>
<!-- 代理api -->
<dependency>
<groupId>com.easy-query</groupId>
<artifactId>sql-api-proxy</artifactId>
<version>2.0.27</version>
<version>2.0.28</version>
<scope>compile</scope>
</dependency>
<!-- mysql驱动 -->
Expand Down
6 changes: 3 additions & 3 deletions samples/easy-query-solon-web/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>com.easy-query</groupId>
<artifactId>samples</artifactId>
<version>2.0.27</version>
<version>2.0.28</version>
</parent>

<groupId>com.easy.query.solon</groupId>
Expand All @@ -22,13 +22,13 @@
<dependency>
<groupId>com.easy-query</groupId>
<artifactId>sql-solon-plugin</artifactId>
<version>2.0.27</version>
<version>2.0.28</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.easy-query</groupId>
<artifactId>sql-processor</artifactId>
<version>2.0.27</version>
<version>2.0.28</version>
<scope>compile</scope>
</dependency>
<dependency>
Expand Down
2 changes: 1 addition & 1 deletion samples/multi-datasource-demo/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
<dependency>
<groupId>com.easy-query</groupId>
<artifactId>sql-springboot-starter</artifactId>
<version>2.0.27</version>
<version>2.0.28</version>
<scope>compile</scope>
</dependency>

Expand Down
4 changes: 2 additions & 2 deletions samples/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<artifactId>easy-query-all</artifactId>
<groupId>com.easy-query</groupId>
<version>2.0.27</version>
<version>2.0.28</version>
</parent>
<modelVersion>4.0.0</modelVersion>

Expand Down Expand Up @@ -44,7 +44,7 @@
<dependency>
<groupId>com.easy-query</groupId>
<artifactId>sql-springboot-starter</artifactId>
<version>2.0.27</version>
<version>2.0.28</version>
<scope>compile</scope>
</dependency>
</dependencies>
Expand Down
4 changes: 2 additions & 2 deletions samples/solon-sharding-demo/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>com.easy-query</groupId>
<artifactId>samples</artifactId>
<version>2.0.27</version>
<version>2.0.28</version>
</parent>

<groupId>com.easy.query</groupId>
Expand All @@ -22,7 +22,7 @@
<dependency>
<groupId>com.easy-query</groupId>
<artifactId>sql-solon-plugin</artifactId>
<version>2.0.27</version>
<version>2.0.28</version>
<scope>compile</scope>
</dependency>
<dependency>
Expand Down
4 changes: 2 additions & 2 deletions samples/spring-sharding-demo/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -55,13 +55,13 @@
<dependency>
<groupId>com.easy-query</groupId>
<artifactId>sql-processor</artifactId>
<version>2.0.27</version>
<version>2.0.28</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.easy-query</groupId>
<artifactId>sql-springboot-starter</artifactId>
<version>2.0.27</version>
<version>2.0.28</version>
<scope>compile</scope>
</dependency>
</dependencies>
Expand Down
6 changes: 3 additions & 3 deletions samples/springbootdemo/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,13 @@
<dependency>
<groupId>com.easy-query</groupId>
<artifactId>sql-processor</artifactId>
<version>2.0.27</version>
<version>2.0.28</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.easy-query</groupId>
<artifactId>sql-springboot-starter</artifactId>
<version>2.0.27</version>
<version>2.0.28</version>
<scope>compile</scope>
</dependency>
<!-- &lt;!&ndash; https://mvnrepository.com/artifact/com.alibaba/druid &ndash;&gt;-->
Expand All @@ -90,7 +90,7 @@
<dependency>
<groupId>com.easy-query</groupId>
<artifactId>sql-cache</artifactId>
<version>2.0.27</version>
<version>2.0.28</version>
<scope>compile</scope>
</dependency>

Expand Down
2 changes: 1 addition & 1 deletion sql-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<artifactId>easy-query-all</artifactId>
<groupId>com.easy-query</groupId>
<version>2.0.27</version>
<version>2.0.28</version>
</parent>
<modelVersion>4.0.0</modelVersion>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
*/
@Documented
@Retention(RetentionPolicy.CLASS)
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.LOCAL_VARIABLE})
@Target({ElementType.METHOD,ElementType.TYPE_USE, ElementType.FIELD, ElementType.PARAMETER, ElementType.LOCAL_VARIABLE})
public @interface Nullable {
String value() default "";
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
* @Description: 文件说明
* @Date: 2023/3/3 16:30
*/
public interface Query<T> extends QueryAvailable<T> , QueryExecutable<T>, MapAble<T> {
public interface Query<T> extends QueryAvailable<T>, QueryExecutable<T>, MapAble<T> {

/**
* 只clone表达式共享上下文
Expand Down Expand Up @@ -77,13 +77,14 @@ default String toSQL(ToSQLContext toSQLContext) {

/**
* 传入生成sql的上下文用来获取生成sql后的表达式内部的参数
*
* @return 包含sql和sql结果比如参数
*/

default ToSQLResult toSQLResult() {
ToSQLContext toSQLContext = DefaultToSQLContext.defaultToSQLContext(getSQLEntityExpressionBuilder().getExpressionContext().getTableContext(),true);
ToSQLContext toSQLContext = DefaultToSQLContext.defaultToSQLContext(getSQLEntityExpressionBuilder().getExpressionContext().getTableContext(), true);
String sql = toSQL(queryClass(), toSQLContext);
return new ToSQLResult(sql,toSQLContext);
return new ToSQLResult(sql, toSQLContext);
}

/**
Expand All @@ -95,7 +96,7 @@ default ToSQLResult toSQLResult() {
*/
default <TR> String toSQL(Class<TR> resultClass) {
TableContext tableContext = getSQLEntityExpressionBuilder().getExpressionContext().getTableContext();
return toSQL(resultClass, DefaultToSQLContext.defaultToSQLContext(tableContext,true));
return toSQL(resultClass, DefaultToSQLContext.defaultToSQLContext(tableContext, true));
}

<TR> String toSQL(Class<TR> resultClass, ToSQLContext toSQLContext);
Expand Down Expand Up @@ -126,25 +127,30 @@ default int intCount() {
* @return 如果有行数那么就就是返回true表示存在,否则返回false表示不存在
*/
boolean any();
default void required(){
required(null,null);
}
default void required(String msg){
required(()->getSQLEntityExpressionBuilder().getRuntimeContext().getAssertExceptionFactory().createRequiredException(this,msg,null));
}
default void required(String msg,String code){
required(()->getSQLEntityExpressionBuilder().getRuntimeContext().getAssertExceptionFactory().createRequiredException(this,msg,code));
}
default void required(Supplier<RuntimeException> throwFunc){
boolean any = any();
if(!any){
throw throwFunc.get();
}
}

default void required() {
required(null, null);
}

default void required(String msg) {
required(() -> getSQLEntityExpressionBuilder().getRuntimeContext().getAssertExceptionFactory().createRequiredException(this, msg, null));
}

default void required(String msg, String code) {
required(() -> getSQLEntityExpressionBuilder().getRuntimeContext().getAssertExceptionFactory().createRequiredException(this, msg, code));
}

default void required(Supplier<RuntimeException> throwFunc) {
boolean any = any();
if (!any) {
throw throwFunc.get();
}
}

/**
* 当未查询到结果返回null
* eg. SELECT projects FROM table t [WHERE t.`columns` = ?] LIMIT 1
*
* @return
*/
default @Nullable T firstOrNull() {
Expand All @@ -162,14 +168,18 @@ default void required(Supplier<RuntimeException> throwFunc){
default @NotNull T firstNotNull(String msg, String code) {
return firstNotNull(queryClass(), msg, code);
}
default <TR> @NotNull TR firstNotNull(Class<TR> resultClass, String msg, String code){
return firstNotNull(resultClass,()->getSQLEntityExpressionBuilder().getRuntimeContext().getAssertExceptionFactory().createFirstNotNullException(this,msg,code));

default <TR> @NotNull TR firstNotNull(Class<TR> resultClass, String msg, String code) {
return firstNotNull(resultClass, () -> getSQLEntityExpressionBuilder().getRuntimeContext().getAssertExceptionFactory().createFirstNotNullException(this, msg, code));
}
default @NotNull T firstNotNull(Supplier<RuntimeException> throwFunc){
return firstNotNull(queryClass(),throwFunc);

default @NotNull T firstNotNull(Supplier<RuntimeException> throwFunc) {
return firstNotNull(queryClass(), throwFunc);
}

/**
* 返回数据且断言至多一条数据,如果大于一条数据将会抛出 {@link EasyQuerySingleMoreElementException}
*
* @return
* @throws EasyQuerySingleMoreElementException 如果大于一条数据
*/
Expand All @@ -180,40 +190,42 @@ default void required(Supplier<RuntimeException> throwFunc){
/**
* 返回数据且断言至多一条数据,如果大于一条数据将会抛出 {@link EasyQuerySingleMoreElementException}
* 返回值包装成 Optional 以便后续调用
*
* @return
* @throws EasyQuerySingleMoreElementException 如果大于一条数据
*/
default Optional<T> singleOptional(){
default Optional<T> singleOptional() {
return Optional.ofNullable(singleOrNull(queryClass()));
}

/**
* 返回数据且断言至多一条数据,如果大于一条数据将会抛出 {@link EasyQuerySingleMoreElementException}
* 查询出来的结果值如果为 null 则返回默认值
* @param defaultValue 默认值, 当查询结果为 null 时返回默认值
*
* @param defaultValue 默认值, 当查询结果为 null 时返回默认值
* @return
* @throws EasyQuerySingleMoreElementException 如果大于一条数据
*/
default T singleOrDefault(T defaultValue){
default T singleOrDefault(T defaultValue) {
T singleOrNull = singleOrNull(queryClass());
return singleOrNull == null ? defaultValue : singleOrNull;
}

/**
* 返回数据且断言至多一条数据,如果大于一条数据将会抛出 {@link EasyQuerySingleMoreElementException}
* 查询出来的结果值如果经 usingDefault 判断为 true 则返回 defaultValue
*
* @param defaultValue 默认值, 当 usingDefault.test(singleOrNullValue) 为 true 时返回默认值
* @param usingDefault 判断是否使用默认值
* @return
* @throws EasyQuerySingleMoreElementException 如果大于一条数据
*/
default T singleOrDefault(T defaultValue, Predicate<T> usingDefault){
default T singleOrDefault(T defaultValue, @Nullable Predicate<@Nullable T> usingDefault) {
T singleOrNullValue = singleOrNull(queryClass());
return (usingDefault != null && usingDefault.test(singleOrNullValue)) ? defaultValue : singleOrNullValue;
}



/**
* 返回数据且断言至多一条数据,如果大于一条数据将会抛出 {@link EasyQuerySingleMoreElementException}
* eg. SELECT projects FROM table t [WHERE t.`columns` = ?]
Expand All @@ -222,19 +234,19 @@ default T singleOrDefault(T defaultValue, Predicate<T> usingDefault){
* @param code
* @return
* @throws EasyQuerySingleMoreElementException 如果大于一条数据
* @throws EasyQuerySingleNotNullException 如果查询不到数据
* @throws EasyQuerySingleNotNullException 如果查询不到数据
*/
default @NotNull T singleNotNull(String msg, String code) {
return singleNotNull(queryClass(), msg, code);
}

default <TR> @NotNull TR singleNotNull(Class<TR> resultClass, String msg, String code){
return singleNotNull(resultClass,()->getSQLEntityExpressionBuilder().getRuntimeContext().getAssertExceptionFactory().createSingleNotNullException(this,msg,code));
}
default @NotNull T singleNotNull(Supplier<RuntimeException> throwFunc){
return singleNotNull(queryClass(),throwFunc);
default <TR> @NotNull TR singleNotNull(Class<TR> resultClass, String msg, String code) {
return singleNotNull(resultClass, () -> getSQLEntityExpressionBuilder().getRuntimeContext().getAssertExceptionFactory().createSingleNotNullException(this, msg, code));
}

default @NotNull T singleNotNull(Supplier<RuntimeException> throwFunc) {
return singleNotNull(queryClass(), throwFunc);
}


/**
Expand Down Expand Up @@ -264,11 +276,11 @@ default T singleOrDefault(T defaultValue, Predicate<T> usingDefault){
* @param code
* @return 返回一个不能为空的结果
* @throws com.easy.query.core.exception.EasyQueryMultiPrimaryKeyException 如果存在多个主键
* @throws com.easy.query.core.exception.EasyQueryNoPrimaryKeyException 如果没有主键
* @throws com.easy.query.core.exception.EasyQueryFindNotNullException 可以通过 {@link AssertExceptionFactory#createFindNotNullException(Query, String, String)} 自定义
* @throws com.easy.query.core.exception.EasyQueryNoPrimaryKeyException 如果没有主键
* @throws com.easy.query.core.exception.EasyQueryFindNotNullException 可以通过 {@link AssertExceptionFactory#createFindNotNullException(Query, String, String)} 自定义
*/
default @NotNull T findNotNull(Object id, String msg, String code){
return findNotNull(id,()->getSQLEntityExpressionBuilder().getRuntimeContext().getAssertExceptionFactory().createFindNotNullException(this,msg,code));
default @NotNull T findNotNull(Object id, String msg, String code) {
return findNotNull(id, () -> getSQLEntityExpressionBuilder().getRuntimeContext().getAssertExceptionFactory().createFindNotNullException(this, msg, code));
}

/**
Expand All @@ -280,6 +292,7 @@ default T singleOrDefault(T defaultValue, Predicate<T> usingDefault){
default @NotNull List<T> toList() {
return toList(queryClass());
}

/**
* 可迭代的流式结果集
*
Expand All @@ -305,8 +318,9 @@ default T singleOrDefault(T defaultValue, Predicate<T> usingDefault){
* @return
*/
default @NotNull JdbcStreamResult<T> toStreamResult(SQLConsumer<Statement> configurer) {
return toStreamResult(queryClass(),configurer);
return toStreamResult(queryClass(), configurer);
}

/**
* 去重
* eg. SELECT DISTINCT projects FROM table t [WHERE t.`columns` = ?]
Expand All @@ -325,7 +339,8 @@ default T singleOrDefault(T defaultValue, Predicate<T> usingDefault){
* @param condition
* @return
*/
@NotNull Query<T> distinct(boolean condition);
@NotNull
Query<T> distinct(boolean condition);

default Query<T> limit(long rows) {
return limit(true, rows);
Expand Down
Loading

0 comments on commit f4fcd8d

Please sign in to comment.