[ Web Proxy ]
URL:
Viewing:
https://raw.githubusercontent.com/jettisonJava/APIJSON_ORM/master/Roadmap.md
[Back]
[Original]
APIJSON
### [APIAuto](https://github.com/TommyLemon/APIAuto)
13000002020 123456
http://apijson.cn/api
##### 1.
2. @raw
3.
#### 20230106 @cloudAndMonkey
https://github.com/Tencent/APIJSON/pull/493
is_deleted CRUD
SQLConfig.isFakeDelete()
true DELETE PUT
SQLConfig.onFakeDelete(Map map)
GET: map.put("deleted", 0)
PUT: map.put("deleted", 0)
DELETE: map.put("deleted", 1)
POST:
deletedTime
apijson-framework Access deletedKey, deletedValue, notDeletedValue
StringUtil.isNotEmpty(deletedKey, true) put
#### @having& 20220328 5.0.0
https://github.com/Tencent/APIJSON/releases/tag/5.0.0 AND @having AND OR
@having!
#### @column! 20210415 [apijson-column](https://github.com/APIJSON/apijson-column) !key [apijson-framework](https://github.com/APIJSON/apijson-framework) @column!
VersionedColumn HashMap
@column @column!
@column! @column
#### TSQL @explain 20220809 Oracle EXPLAIN @ifooling
https://github.com/Tencent/APIJSON/pull/434 APIJSON [Oracle](https://github.com/APIJSON/APIJSON-Demo/tree/master/Oracle), [SQL Server](https://github.com/APIJSON/APIJSON-Demo/tree/master/SQLServer), DB2 3 TSQL
"@explain": true SET STATISTICS PROFILE ON( [AbstractSQLConfig](https://github.com/Tencent/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/orm/AbstractSQLConfig.java) [AbstrctSQLExecutor](https://github.com/Tencent/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/orm/AbstrctSQLExecutor.java))
SELECT ResultSet moreResult
@explain bug
#### page 1 0 1
[Parser](https://github.com/Tencent/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/orm/Parser.java) DEFAULT_QUERY_PAGE getDefaultQueryPage
DEFAULT_QUERY_COUNT getDefaultQueryCount
info.page
[AbstractParser](https://github.com/Tencent/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/orm/AbstractParser.java)[AbstractSQLConfig](https://github.com/Tencent/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/orm/AbstractSQLConfig.java) page getDefaultQueryPage
#### "@url": "http://apijson.cn:8080/get" ```js { "User": { "@url": "http://apijson.cn:8080/get" // }, "[]": { "Comment": { "userId@": "User/id" } }, "@explain": true } ```
~ "@url": "\~http://apijson.cn:8080/get"
#### Union INNER JOIN + OR
UNION UNION ALL
"@union": Integer // 0 - 1 - UNION2 - UNION ALL ```js { "[]": { "User": { "name~": "a", "tag~": "a", "@combine": "name~,tag~", "@union": 1 // @combine N OR UNION SQL N SQL UNION } }, "@explain": true } ``` SQL ```sql SELECT * FROM `sys`.`apijson_user` WHERE ( (`name` REGEXP BINARY 'a') OR (`tag` REGEXP BINARY 'a') ) LIMIT 10 OFFSET 0 ``` ```sql SELECT * FROM `sys`.`apijson_user` WHERE ( (`name` REGEXP BINARY 'a') ) UNION SELECT * FROM `sys`.`apijson_user` WHERE ( (`tag` REGEXP BINARY 'a') ) LIMIT 10 OFFSET 0 ``` #### With 20221126 @cloudAndMonkey
https://github.com/Tencent/APIJSON/pull/481 ```js { // "sql@": { "with": true, // WITH(SELECT id ...) AS `sql` "from": "User", "User": { "@column": "id", "@role": "CONTACT" } }, "Moment[]": { "Moment": { "userId{}@": "sql", "@order": "date-" } }, "Comment[]": { "Comment": { "userId{}@": "sql", "@order": "date-" } }, "@explain": true } ``` SQL ```sql SELECT * FROM `sys`.`Moment` WHERE ( (`userId` IN (SELECT `id` FROM `sys`.`User` WHERE `id` IN($contactIdList)) ) ) ORDER BY `date` DESC LIMIT 10 OFFSET 0 ``` ```sql SELECT * FROM `sys`.`Moment` WHERE ( (`userId` IN (SELECT `id` FROM `sys`.`User` WHERE `id` IN($contactIdList)) ) ) ORDER BY `date` DESC LIMIT 10 OFFSET 0 ``` ```sql WITH (SELECT `id` FROM `sys`.`User` WHERE `id` IN($contactIdList)) AS `sql` SELECT * FROM `sys`.`Moment` WHERE ( (`userId` IN `sql` ) ) ORDER BY `date` DESC LIMIT 10 OFFSET 0 ``` ```sql WITH (SELECT `id` FROM `sys`.`User` WHERE `id` IN($contactIdList)) AS `sql` SELECT * FROM `sys`.`Comment` WHERE ( (`userId` IN `sql` ) ) ORDER BY `date` DESC LIMIT 10 OFFSET 0 ``` #### Case SQL CASE WHEN @raw SQL CASE WHEN THEN
SQL
#### id AbstractVerifier.IS_UPDATE_MUST_HAVE_ID_CONDITION = false
id
https://github.com/Tencent/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/orm/AbstractVerifier.java#L84-L86 Operation AT_LEAST_ONE/ANY_ONE
MUST id/
id AND OR
tag
method: DELETE
id ``` tag: Comment-by-id // Comment:id structure: ... "MUST":"id" ... ```
date ``` tag: Comment-by-date structure: ... "MUST":"date" ... ```
Operation AT_LEAST_ONE/ANY_ONE ``` tag: Comment structure: ... "AT_LEAST_ONE":"id,date" ... // ``` ``` tag: Comment structure: ... "ANY_ONE":"id,date" ... // 2 ```
AT_LEAST_ONE/ANY_ONE MUST
"MUST":"id | date," | "name|$" "id|{}" "|" key
https://github.com/Tencent/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/orm/Operation.java
``` "MUST":"1:id | date," // id, date
"MUST":">=2:id | momentId|{} | date>=," // id, momentId|{}, date>= 2 "MUST":"2+:id | momentId|{} | date>=," // id, momentId|{}, date>= 2 >= 2 >1, != 2 "MUST":"2-:id | momentId|{} | date>=," // id, momentId|{}, date>= 2
Web Proxy Viewer |
New URL
|
Original Page