diff --git a/README.md b/README.md
index 9d40586..e04498b 100644
--- a/README.md
+++ b/README.md
@@ -148,12 +148,11 @@
连表构建API (QB.X)
25. from(joinSql) //简单的连表SQL,不支持LEFT JOIN ON 多条件; 多条件,请用API[28]
- 26. fromBuilder.of(Order.class).alia("o") //连表里的主表, API: .fromX(FromX fromX)
- 27. fromBuilder.JOIN(LEFT).of(OrderItem.class).alia("i")
+ 26. fromBuilder.of(Order.class,"o") //连表里的主表, API: .fromX(FromX fromX)
+ 27. fromBuilder.JOIN(LEFT).of(OrderItem.class,"i")
.on("i.orderId = o.id",
28 on -> on.gt(...)) //LEFT JOIN等, 更多条件
- 29. fromBuilder.sub(....) // INNER JOIN (....) i 有限支持clickhouse等数据库
- .alia("i").JOIN("ANY INNER JOIN").on(....) //fluent构建连表sql
+ 29. fromBuilder.sub(....,"i").JOIN("ANY INNER JOIN").on(....) //fluent构建连表sql
分页及排序API (QB | QB.X)
30. sort("o.id", Direction.DESC)
diff --git a/pom.xml b/pom.xml
index 3fddbce..b0f5a82 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
io.xream.sqli
sqli-parent
pom
- 2.1.6
+ 2.1.7
sqli-parent
http://sqli.xream.io
@@ -24,7 +24,7 @@
17
true
1.0.0
- 2.1.6
+ 2.1.7
2.13.4.2
1.7.30
@@ -33,7 +33,7 @@
scm:git:https://github.com/x-ream/sqli
scm:git:https://github.com/x-ream/sqli
scm:git:https://github.com/x-ream/sqli
- 2.1.6
+ 2.1.7
diff --git a/sqli-builder/pom.xml b/sqli-builder/pom.xml
index 708f1f3..10e54f5 100644
--- a/sqli-builder/pom.xml
+++ b/sqli-builder/pom.xml
@@ -5,7 +5,7 @@
sqli-parent
io.xream.sqli
- 2.1.6
+ 2.1.7
4.0.0
diff --git a/sqli-core/pom.xml b/sqli-core/pom.xml
index fe6215b..997393d 100644
--- a/sqli-core/pom.xml
+++ b/sqli-core/pom.xml
@@ -5,7 +5,7 @@
sqli-parent
io.xream.sqli
- 2.1.6
+ 2.1.7
4.0.0
diff --git a/sqli-core/src/main/java/io/xream/sqli/api/BaseRepository.java b/sqli-core/src/main/java/io/xream/sqli/api/BaseRepository.java
index cc74658..cfea86c 100644
--- a/sqli-core/src/main/java/io/xream/sqli/api/BaseRepository.java
+++ b/sqli-core/src/main/java/io/xream/sqli/api/BaseRepository.java
@@ -69,7 +69,7 @@ public interface BaseRepository extends Typed {
* caution: sometimes, should not use the api >
*
*/
- boolean removeRefreshCreate(RemoveRefreshCreate RemoveRrefreshCreate_of);
+ boolean removeRefreshCreate(RemoveRefreshCreate RemoveRefreshCreate_of);
/**
* @param keyOne
*/
@@ -88,10 +88,13 @@ public interface BaseRepository extends Typed {
*
* @param conditionObj
*/
+ @Deprecated
List list(T conditionObj);
+ @Deprecated
T getOne(T conditionObj);
+ T getOne(Q q);
/**
* in API
*
@@ -103,9 +106,9 @@ public interface BaseRepository extends Typed {
*
* @param q
*/
- Page find(Q q);
+ Page find(Q q);
- List list(Q q);
+ List list(Q q);
/**
* like stream, fetchSize=50, the api not fast, to avoid OOM when scheduling
@@ -113,8 +116,8 @@ public interface BaseRepository extends Typed {
* @param handler
* @param
*/
- void findToHandle(Q q, RowHandler handler);
+ void findToHandle(Q q, RowHandler handler);
- boolean exists(Q q);
+ boolean exists(Q q);
}
\ No newline at end of file
diff --git a/sqli-core/src/main/java/io/xream/sqli/core/Repository.java b/sqli-core/src/main/java/io/xream/sqli/core/Repository.java
index 164e326..915f837 100644
--- a/sqli-core/src/main/java/io/xream/sqli/core/Repository.java
+++ b/sqli-core/src/main/java/io/xream/sqli/core/Repository.java
@@ -48,6 +48,7 @@ public interface Repository extends QueryForCache {
T get(KeyOne keyOne);
+ @Deprecated
List list(Object cond);
Page find(Q q);
@@ -62,8 +63,11 @@ public interface Repository extends QueryForCache {
boolean createBatch(List extends Object> objList);
+ @Deprecated
T getOne(T condition);
+ T getOne(Q q);
+
boolean refresh(T t);
void findToHandle(Q q, RowHandler handler);
diff --git a/sqli-dialect/pom.xml b/sqli-dialect/pom.xml
index 044a130..6c46084 100644
--- a/sqli-dialect/pom.xml
+++ b/sqli-dialect/pom.xml
@@ -5,7 +5,7 @@
sqli-parent
io.xream.sqli
- 2.1.6
+ 2.1.7
4.0.0
sqli-dialect
diff --git a/sqli-repo/pom.xml b/sqli-repo/pom.xml
index d412880..3c38339 100644
--- a/sqli-repo/pom.xml
+++ b/sqli-repo/pom.xml
@@ -5,7 +5,7 @@
sqli-parent
io.xream.sqli
- 2.1.6
+ 2.1.7
4.0.0
diff --git a/sqli-repo/src/main/java/io/xream/sqli/repository/core/CacheableRepository.java b/sqli-repo/src/main/java/io/xream/sqli/repository/core/CacheableRepository.java
index 5fe03df..3689817 100644
--- a/sqli-repo/src/main/java/io/xream/sqli/repository/core/CacheableRepository.java
+++ b/sqli-repo/src/main/java/io/xream/sqli/repository/core/CacheableRepository.java
@@ -48,9 +48,11 @@ public final class CacheableRepository implements Repository, NativeSupport {
private Dao dao;
private L2CacheResolver cacheResolver;
- private CacheableRepository(){}
- public static CacheableRepository newInstance(){
- if (instance == null){
+ private CacheableRepository() {
+ }
+
+ public static CacheableRepository newInstance() {
+ if (instance == null) {
instance = new CacheableRepository();
return instance;
}
@@ -67,9 +69,9 @@ public void setCacheResolver(L2CacheResolver cacheResolver) {
private boolean isCacheEnabled(Parsed parsed) {
boolean b = cacheResolver.isEnabled() && !parsed.isNoCache();
- if (b){
+ if (b) {
SqliLoggerProxy.debug(parsed.getClzz(), "L2Cache effected");
- }else{
+ } else {
SqliLoggerProxy.debug(parsed.getClzz(), "L2Cache not effected");
}
return b;
@@ -93,7 +95,7 @@ public boolean createOrReplace(Object obj) {
Class clz = obj.getClass();
Parsed parsed = Parser.get(clz);
- Object id = CreateOrReplaceOptimization.tryToGetId(obj,parsed);
+ Object id = CreateOrReplaceOptimization.tryToGetId(obj, parsed);
boolean flag = dao.createOrReplace(obj);
@@ -203,7 +205,7 @@ public boolean removeIn(Keys keys) {
public List listByClzz(Class clzz) {
try {
return this.dao.list(clzz.newInstance());
- }catch (Exception e){
+ } catch (Exception e) {
SqliExceptionUtil.throwRuntimeExceptionFirst(e);
throw new QueryException(SqliExceptionUtil.getMessage(e));
}
@@ -268,8 +270,8 @@ public List list(Q q) {
}
- public boolean execute(String sql, Object...objs) {
- return dao.execute(sql,objs);
+ public boolean execute(String sql, Object... objs) {
+ return dao.execute(sql, objs);
}
@@ -342,6 +344,18 @@ public T getOne(T condition) {
return cacheResolver.getOneUnderProtection(clz, condition, () -> dao.getOne(condition));
}
+ @Override
+ public T getOne(Q q) {
+
+ Class clz = (Class) q.getClzz();
+ Parsed parsed = Parser.get(clz);
+
+ if (!isCacheEnabled(parsed))
+ return dao.getOne(q);
+
+ return cacheResolver.getOneUnderProtection(clz, q, () -> dao.getOne(q));
+ }
+
@Override
public Page