refactor(data): 调整 Query 相关类到 data-core

This commit is contained in:
2024-02-20 21:39:07 +08:00
parent 31ca1fda52
commit 3f2a306cad
4 changed files with 8 additions and 3 deletions

View File

@@ -0,0 +1,49 @@
/*
* Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
* <p>
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.gnu.org/licenses/lgpl.html
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package top.charles7c.continew.starter.data.core.annotation;
import top.charles7c.continew.starter.data.core.enums.QueryType;
import java.lang.annotation.*;
/**
* 查询注解
*
* @author Charles7c
* @author Jasmine
* @since 1.0.0
*/
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Query {
/**
* 列名(注意:列名是数据库字段名,而不是实体类字段名。如果命名是数据库关键字的,请使用转义符包裹)
*
* <p>
* columns 为空时,默认取值字段名(自动转换为下划线命名);<br>
* columns 不为空且 columns 长度大于 1多个列查询条件之间为或关系OR
* </p>
*/
String[] columns() default {};
/**
* 查询类型(等值查询、模糊查询、范围查询等)
*/
QueryType type() default QueryType.EQ;
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
* <p>
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.gnu.org/licenses/lgpl.html
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package top.charles7c.continew.starter.data.core.annotation;
import java.lang.annotation.*;
/**
* 查询解析忽略注解
*
* @author Charles7c
* @since 1.3.0
*/
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface QueryIgnore {
/**
* 获取是否忽略查询解析
*
* @return 是否忽略查询解析
*/
boolean value() default true;
}

View File

@@ -0,0 +1,96 @@
/*
* Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
* <p>
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.gnu.org/licenses/lgpl.html
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package top.charles7c.continew.starter.data.core.enums;
/**
* 查询类型枚举
*
* @author Charles7c
* @since 1.0.0
*/
public enum QueryType {
/**
* 等于 =例如WHERE age = 18
*/
EQ,
/**
* 不等于 !=例如WHERE age != 18
*/
NE,
/**
* 大于 >例如WHERE age > 18
*/
GT,
/**
* 大于等于 >= 例如WHERE age >= 18
*/
GE,
/**
* 小于 <例如WHERE age < 18
*/
LT,
/**
* 小于等于 <=例如WHERE age <= 18
*/
LE,
/**
* 范围查询例如WHERE age BETWEEN 10 AND 18
*/
BETWEEN,
/**
* LIKE '%值%'例如WHERE nickname LIKE '%s%'
*/
LIKE,
/**
* LIKE '%值'例如WHERE nickname LIKE '%s'
*/
LIKE_LEFT,
/**
* LIKE '值%'例如WHERE nickname LIKE 's%'
*/
LIKE_RIGHT,
/**
* 包含查询例如WHERE age IN (10, 20, 30)
*/
IN,
/**
* 不包含查询例如WHERE age NOT IN (20, 30)
*/
NOT_IN,
/**
* 空查询例如WHERE email IS NULL
*/
IS_NULL,
/**
* 非空查询例如WHERE email IS NOT NULL
*/
IS_NOT_NULL,;
}