This commit is contained in:
@@ -5,19 +5,19 @@
|
||||
*/
|
||||
package org.redkale.source;
|
||||
|
||||
import static org.redkale.source.FilterNode.*;
|
||||
import java.io.*;
|
||||
import java.lang.reflect.*;
|
||||
import java.net.*;
|
||||
import java.nio.channels.*;
|
||||
import java.lang.reflect.Method;
|
||||
import java.net.URL;
|
||||
import java.nio.channels.CompletionHandler;
|
||||
import java.sql.*;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.*;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.function.*;
|
||||
import java.util.logging.*;
|
||||
import javax.annotation.*;
|
||||
import javax.sql.*;
|
||||
import javax.annotation.Resource;
|
||||
import javax.sql.ConnectionPoolDataSource;
|
||||
import javax.xml.stream.*;
|
||||
import static org.redkale.source.FilterNode.formatToString;
|
||||
import org.redkale.util.*;
|
||||
|
||||
/**
|
||||
@@ -345,9 +345,9 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
final boolean distributed = info.distributed;
|
||||
Attribute<T, Serializable>[] attrs = info.insertAttributes;
|
||||
String[] sqls = null;
|
||||
if (distributed && !info.initedPrimaryValue && primaryType.isPrimitive()) {
|
||||
if (distributed && !info.initedPrimaryValue && primaryType.isPrimitive()) { //由DataSource生成主键
|
||||
synchronized (info) {
|
||||
if (!info.initedPrimaryValue) {
|
||||
if (!info.initedPrimaryValue) { //初始化最大主键值
|
||||
Statement stmt = conn.createStatement();
|
||||
ResultSet rs = stmt.executeQuery("SELECT MAX(" + info.getPrimarySQLColumn() + ") FROM " + info.getTable());
|
||||
if (rs.next()) {
|
||||
@@ -361,7 +361,7 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
}
|
||||
rs.close();
|
||||
stmt.close();
|
||||
if (info.distributeTables != null) {
|
||||
if (info.distributeTables != null) { //是否还有其他表
|
||||
for (final Class t : info.distributeTables) {
|
||||
EntityInfo<T> infox = loadEntityInfo(t);
|
||||
stmt = conn.createStatement();
|
||||
@@ -392,7 +392,7 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
}
|
||||
prestmt.addBatch();
|
||||
}
|
||||
} else {
|
||||
} else { //调用writeListener回调接口
|
||||
char[] sqlchars = sql.toCharArray();
|
||||
sqls = new String[values.length];
|
||||
CharSequence[] ps = new CharSequence[attrs.length];
|
||||
@@ -421,7 +421,7 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
}
|
||||
prestmt.executeBatch();
|
||||
if (writeListener != null) writeListener.insert(sqls);
|
||||
if (info.autoGenerated) {
|
||||
if (info.autoGenerated) { //由数据库自动生成主键值
|
||||
ResultSet set = prestmt.getGeneratedKeys();
|
||||
int i = -1;
|
||||
while (set.next()) {
|
||||
@@ -437,7 +437,7 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
}
|
||||
prestmt.close();
|
||||
//------------------------------------------------------------
|
||||
if (debug.get()) {
|
||||
if (debug.get()) { //打印调试信息
|
||||
char[] sqlchars = sql.toCharArray();
|
||||
for (final T value : values) {
|
||||
//-----------------------------
|
||||
@@ -457,10 +457,10 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
}
|
||||
logger.finest(info.getType().getSimpleName() + " insert sql=" + sb.toString().replaceAll("(\r|\n)", "\\n"));
|
||||
}
|
||||
}
|
||||
} //打印结束
|
||||
}
|
||||
final EntityCache<T> cache = info.getCache();
|
||||
if (cache != null) {
|
||||
if (cache != null) { //更新缓存
|
||||
for (final T value : values) {
|
||||
cache.insert(value);
|
||||
}
|
||||
@@ -492,7 +492,7 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
public <T> void delete(T... values) {
|
||||
if (values.length == 0) return;
|
||||
final EntityInfo<T> info = loadEntityInfo((Class<T>) values[0].getClass());
|
||||
if (info.isVirtualEntity()) {
|
||||
if (info.isVirtualEntity()) { //虚拟表只更新缓存Cache
|
||||
delete(null, info, values);
|
||||
return;
|
||||
}
|
||||
@@ -524,7 +524,7 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
@Override
|
||||
public <T> void delete(Class<T> clazz, Serializable... ids) {
|
||||
final EntityInfo<T> info = loadEntityInfo(clazz);
|
||||
if (info.isVirtualEntity()) {
|
||||
if (info.isVirtualEntity()) { //虚拟表只更新缓存Cache
|
||||
delete(null, info, ids);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -5,11 +5,11 @@
|
||||
*/
|
||||
package org.redkale.source;
|
||||
|
||||
import java.io.*;
|
||||
import java.nio.channels.*;
|
||||
import java.sql.*;
|
||||
import java.io.Serializable;
|
||||
import java.nio.channels.CompletionHandler;
|
||||
import java.sql.ResultSet;
|
||||
import java.util.*;
|
||||
import java.util.function.*;
|
||||
import java.util.function.Consumer;
|
||||
import org.redkale.util.*;
|
||||
|
||||
/**
|
||||
@@ -94,6 +94,9 @@ public interface DataSource {
|
||||
|
||||
public <T> void updateColumns(final CompletionHandler<Void, T> handler, final T value, final String... columns);
|
||||
|
||||
|
||||
|
||||
//############################################# 查询接口 #############################################
|
||||
//-----------------------getXXXXResult-----------------------------
|
||||
public Number getNumberResult(final Class entityClass, final FilterFunc func, final String column);
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ public class FilterKey implements java.io.Serializable {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "$." + getColumn();
|
||||
return "a." + getColumn();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user