Skip to content

Commit

Permalink
2.1.7
Browse files Browse the repository at this point in the history
  • Loading branch information
sim-wangyan committed Feb 15, 2024
1 parent efcf409 commit d3e6270
Show file tree
Hide file tree
Showing 12 changed files with 82 additions and 34 deletions.
7 changes: 3 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
6 changes: 3 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<groupId>io.xream.sqli</groupId>
<artifactId>sqli-parent</artifactId>
<packaging>pom</packaging>
<version>2.1.6</version>
<version>2.1.7</version>

<name>sqli-parent</name>
<description>http://sqli.xream.io</description>
Expand All @@ -24,7 +24,7 @@
<maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
<maven.test.skip>true</maven.test.skip>
<sqli.annotation.version>1.0.0</sqli.annotation.version>
<sqli.version>2.1.6</sqli.version>
<sqli.version>2.1.7</sqli.version>
<jackson.version>2.13.4.2</jackson.version>
<sl4j.version>1.7.30</sl4j.version>
</properties>
Expand All @@ -33,7 +33,7 @@
<connection>scm:git:https://github.com/x-ream/sqli</connection>
<developerConnection>scm:git:https://github.com/x-ream/sqli</developerConnection>
<url>scm:git:https://github.com/x-ream/sqli</url>
<tag>2.1.6</tag>
<tag>2.1.7</tag>
</scm>

<licenses>
Expand Down
2 changes: 1 addition & 1 deletion sqli-builder/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<artifactId>sqli-parent</artifactId>
<groupId>io.xream.sqli</groupId>
<version>2.1.6</version>
<version>2.1.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

Expand Down
2 changes: 1 addition & 1 deletion sqli-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<artifactId>sqli-parent</artifactId>
<groupId>io.xream.sqli</groupId>
<version>2.1.6</version>
<version>2.1.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

Expand Down
13 changes: 8 additions & 5 deletions sqli-core/src/main/java/io/xream/sqli/api/BaseRepository.java
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ public interface BaseRepository<T> extends Typed<T> {
* caution: sometimes, should not use the api </>
*
*/
boolean removeRefreshCreate(RemoveRefreshCreate<T> RemoveRrefreshCreate_of);
boolean removeRefreshCreate(RemoveRefreshCreate<T> RemoveRefreshCreate_of);
/**
* @param keyOne
*/
Expand All @@ -88,10 +88,13 @@ public interface BaseRepository<T> extends Typed<T> {
*
* @param conditionObj
*/
@Deprecated
List<T> list(T conditionObj);

@Deprecated
T getOne(T conditionObj);

T getOne(Q<T> q);
/**
* in API
*
Expand All @@ -103,18 +106,18 @@ public interface BaseRepository<T> extends Typed<T> {
*
* @param q
*/
Page<T> find(Q q);
Page<T> find(Q<T> q);

List<T> list(Q q);
List<T> list(Q<T> q);

/**
* like stream, fetchSize=50, the api not fast, to avoid OOM when scheduling
* @param q
* @param handler
* @param <T>
*/
<T> void findToHandle(Q q, RowHandler<T> handler);
<T> void findToHandle(Q<T> q, RowHandler<T> handler);

boolean exists(Q q);
boolean exists(Q<T> q);

}
4 changes: 4 additions & 0 deletions sqli-core/src/main/java/io/xream/sqli/core/Repository.java
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ public interface Repository extends QueryForCache {

<T> T get(KeyOne<T> keyOne);

@Deprecated
<T> List<T> list(Object cond);

<T> Page<T> find(Q q);
Expand All @@ -62,8 +63,11 @@ public interface Repository extends QueryForCache {

boolean createBatch(List<? extends Object> objList);

@Deprecated
<T> T getOne(T condition);

<T> T getOne(Q q);

<T> boolean refresh(T t);

<T> void findToHandle(Q q, RowHandler<T> handler);
Expand Down
2 changes: 1 addition & 1 deletion sqli-dialect/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<artifactId>sqli-parent</artifactId>
<groupId>io.xream.sqli</groupId>
<version>2.1.6</version>
<version>2.1.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>sqli-dialect</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion sqli-repo/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<artifactId>sqli-parent</artifactId>
<groupId>io.xream.sqli</groupId>
<version>2.1.6</version>
<version>2.1.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand All @@ -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;
Expand All @@ -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);

Expand Down Expand Up @@ -203,7 +205,7 @@ public <T> boolean removeIn(Keys<T> keys) {
public <T> List<T> listByClzz(Class<T> clzz) {
try {
return this.dao.list(clzz.newInstance());
}catch (Exception e){
} catch (Exception e) {
SqliExceptionUtil.throwRuntimeExceptionFirst(e);
throw new QueryException(SqliExceptionUtil.getMessage(e));
}
Expand Down Expand Up @@ -268,8 +270,8 @@ public <T> List<T> 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);
}


Expand Down Expand Up @@ -342,6 +344,18 @@ public <T> T getOne(T condition) {
return cacheResolver.getOneUnderProtection(clz, condition, () -> dao.getOne(condition));
}

@Override
public <T> T getOne(Q q) {

Class<T> clz = (Class<T>) 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<Map<String, Object>> find(Q.X xq) {
if (xq.isAbort()) {
Expand All @@ -364,10 +378,10 @@ public List<Map<String, Object>> list(Q.X xq) {
}

@Override
public <K> List<K> listPlainValue(Class<K> clzz, Q.X xq){
public <K> List<K> listPlainValue(Class<K> clzz, Q.X xq) {
if (xq.isAbort())
return new ArrayList<>();
return dao.listPlainValue(clzz,xq);
return dao.listPlainValue(clzz, xq);
}


Expand All @@ -380,14 +394,14 @@ public List<Map<String, Object>> list(String sql, List<Object> conditionSet) {
public <T> void findToHandle(Q q, RowHandler<T> handler) {
if (q.isAbort())
return;
this.dao.findToHandle(q,handler);
this.dao.findToHandle(q, handler);
}

@Override
public void findToHandle(Q.X xq, RowHandler<Map<String, Object>> handler) {
if (xq.isAbort())
return;
this.dao.findToHandle(xq,handler);
this.dao.findToHandle(xq, handler);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,8 @@ public interface Dao extends QueryForCache {
<T> boolean removeIn(Keys<T> keys);

<T> boolean refreshByCondition(Qr<T> conditon);


@Deprecated
<T> List<T> list(Object conditionObj);

List<Map<String,Object>> list(String sql,
Expand All @@ -71,8 +72,11 @@ List<Map<String,Object>> list(String sql,

boolean execute(String sql, Object...objs);

@Deprecated
<T> T getOne(T conditionObj);

<T> T getOne(Q q);

<T> boolean refresh(T t);

<T> void findToHandle(Q q, RowHandler<T> handler);
Expand Down
17 changes: 17 additions & 0 deletions sqli-repo/src/main/java/io/xream/sqli/repository/dao/DaoImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -411,6 +411,23 @@ public <T> T getOne(T conditionObj) {
return list.get(0);
}

@Override
public <T> T getOne(Q q) {
Class clz = q.getClzz();
List<Object> valueList = new ArrayList<>();
SqlBuilt sqlBuilt = sqlBuilder.buildQueryByQ(valueList, q, q2Sql, dialect);
String sql = sqlBuilt.getSql().toString();
SqliLoggerProxy.debug(clz, sql);

List<T> list = this.jdbcHelper.queryForList(sql, valueList, Parser.get(clz), this.dialect);

if (list.isEmpty())
return null;
if (list.size() > 1)
throw new TooManyResultsException("Expected one result (or null) to be returned by API of getOne(T), but found: " + list.size());
return list.get(0);
}

@Override
public void findToHandle(Q.X xq, RowHandler<Map<String,Object>> handler) {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -264,6 +264,13 @@ public T getOne(T conditionObj) {
return repository.getOne(conditionObj);
}

@Override
public T getOne(Q<T> q) {
if (q == null)
return null;
return repository.getOne(q);
}

@Override
public void refreshCache() {
repository.refreshCache(this.clzz);
Expand All @@ -281,7 +288,7 @@ public List<T> in(String property, List<? extends Object> inList) {


@Override
public Page<T> find(Q q) {
public Page<T> find(Q<T> q) {
assertQClzz(q);
this.setDefaultClzz(q);
Page<T> page = repository.find(q);
Expand All @@ -291,22 +298,22 @@ public Page<T> find(Q q) {


@Override
public List<T> list(Q q) {
public List<T> list(Q<T> q) {
assertQClzz(q);
this.setDefaultClzz(q);
return repository.list(q);

}

@Override
public <T> void findToHandle(Q q, RowHandler<T> handler) {
public <T> void findToHandle(Q<T> q, RowHandler<T> handler) {
assertQClzz(q);
this.setDefaultClzz(q);
this.repository.findToHandle(q,handler);
}

@Override
public boolean exists(Q q) {
public boolean exists(Q<T> q) {
assertQClzz(q);
this.setDefaultClzz(q);
return this.repository.exists(q);
Expand Down

0 comments on commit d3e6270

Please sign in to comment.