This commit is contained in:
开源海哥 2023-04-21 09:15:57 +08:00
parent 9f4eaca0dc
commit ff55e83f5a
5 changed files with 90 additions and 24 deletions

View File

@ -70,4 +70,12 @@ public class FunctionQueryColumn extends QueryColumn {
this.alias = alias;
return this;
}
@Override
public String toString() {
return "FunctionQueryColumn{" +
"fnName='" + fnName + '\'' +
", column=" + column +
'}';
}
}

View File

@ -655,11 +655,7 @@ public class TableInfo {
if (columnValue == null) {
String name = columnInfoMapping.get(versionColumn).property;
Class<?> clazz = metaObject.getSetterType(name);
if (clazz.isAssignableFrom(Long.class)) {
metaObject.setValue(name, 0L);
} else if (clazz.isAssignableFrom(Integer.class)) {
metaObject.setValue(name, 0);
}
metaObject.setValue(name, ConvertUtil.convert(0L, clazz));
}
}
@ -701,9 +697,9 @@ public class TableInfo {
if (columnValue == null) {
String name = columnInfoMapping.get(logicDeleteColumn).property;
Class<?> clazz = metaObject.getSetterType(name);
if (clazz.isAssignableFrom(Integer.class)) {
metaObject.setValue(name, 0);
} else if (clazz.isAssignableFrom(Boolean.class)) {
if (Number.class.isAssignableFrom(clazz)){
metaObject.setValue(name, ConvertUtil.convert(0L, clazz));
}else if (clazz == Boolean.class){
metaObject.setValue(name, false);
}
}

View File

@ -41,11 +41,34 @@
</dependency>
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.26</version>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.28</version>
</dependency>
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.28</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.14.2</version>
</dependency>
<dependency>
<groupId>de.ruedigermoeller</groupId>
<artifactId>fst</artifactId>
<version>2.57</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>

View File

@ -19,16 +19,11 @@ import com.mybatisflex.core.MybatisFlexBootstrap;
import com.mybatisflex.core.audit.AuditManager;
import com.mybatisflex.core.audit.ConsoleMessageCollector;
import com.mybatisflex.core.audit.MessageCollector;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
import javax.sql.DataSource;
import static com.mybatisflex.core.query.QueryMethods.select;
import static com.mybatisflex.test.table.Tables.ACCOUNT;
public class EntityTestStarter {
public static void main(String[] args) {
@ -55,15 +50,16 @@ public class EntityTestStarter {
// QueryWrapper wrapper = QueryWrapper.create().select(ACCOUNT.DEFAULT_COLUMNS).select(count()).from(ACCOUNT)
// .groupBy(ACCOUNT.ID);
// List<Account> accounts = accountMapper.selectListByQuery(wrapper);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.where(ACCOUNT.ID.in(
select(ACCOUNT.ID).from(ACCOUNT)
));
Page<Account> paginate = accountMapper.paginate(new Page<>(1,10),queryWrapper);
System.out.println(paginate);
//
// QueryWrapper queryWrapper = new QueryWrapper();
// queryWrapper.where(ACCOUNT.ID.in(
// select(ACCOUNT.ID).from(ACCOUNT)
// ));
//
// Page<Account> paginate = accountMapper.paginate(new Page<>(1,10),queryWrapper);
// System.out.println(paginate);
// Account account = accountMapper.selectOneById(1);

View File

@ -0,0 +1,43 @@
package com.mybatisflex.test;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONReader;
import com.alibaba.fastjson2.JSONWriter;
import com.mybatisflex.core.query.QueryWrapper;
import org.nustaq.serialization.FSTConfiguration;
import static com.mybatisflex.test.table.Tables.ACCOUNT;
public class WrapperSerializeTest {
public static void main(String[] args) throws Exception {
QueryWrapper wrapper = QueryWrapper.create()
.select().from(ACCOUNT)
.where(ACCOUNT.ID.eq("michael"))
.and(ACCOUNT.AGE.ge(18))
.orderBy(ACCOUNT.ID.desc());
byFst(wrapper);
}
private static void byFst(QueryWrapper wrapper) {
FSTConfiguration fst = FSTConfiguration.createDefaultConfiguration();
byte[] bytes = fst.asByteArray(wrapper);
QueryWrapper newWrapper = (QueryWrapper) fst.asObject(bytes);
System.out.println(newWrapper);
}
private static void byFastjson2(QueryWrapper wrapper) {
String s = JSON.toJSONString(wrapper, JSONWriter.Feature.FieldBased, JSONWriter.Feature.WriteClassName, JSONWriter.Feature.ReferenceDetection);
System.out.println(s);
QueryWrapper newWrapper = JSON.parseObject(s, QueryWrapper.class, JSONReader.Feature.FieldBased, JSONReader.Feature.SupportAutoType);
String s2 = JSON.toJSONString(newWrapper, JSONWriter.Feature.FieldBased, JSONWriter.Feature.WriteClassName, JSONWriter.Feature.ReferenceDetection);
System.out.println(s2);
}
}