EntityInfo优化
This commit is contained in:
@@ -1642,6 +1642,10 @@ public final class EntityInfo<T> {
|
|||||||
return getEntityValue(constructorAttributes, constructorAttributes == null ? queryAttributes : unconstructorAttributes, row);
|
return getEntityValue(constructorAttributes, constructorAttributes == null ? queryAttributes : unconstructorAttributes, row);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public T getFullEntityValue(final Serializable... values) {
|
||||||
|
return getEntityValue(constructorAttributes, constructorAttributes == null ? queryAttributes : unconstructorAttributes, values);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 将一行的ResultSet组装成一个Entity对象
|
* 将一行的ResultSet组装成一个Entity对象
|
||||||
*
|
*
|
||||||
@@ -1681,6 +1685,45 @@ public final class EntityInfo<T> {
|
|||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将一行的ResultSet组装成一个Entity对象
|
||||||
|
*
|
||||||
|
* @param constructorAttrs 构建函数的Attribute数组, 大小必须与this.constructorAttributes相同
|
||||||
|
* @param unconstructorAttrs 非构建函数的Attribute数组
|
||||||
|
* @param values 字段值集合
|
||||||
|
*
|
||||||
|
* @return Entity对象
|
||||||
|
*/
|
||||||
|
protected T getEntityValue(final Attribute<T, Serializable>[] constructorAttrs, final Attribute<T, Serializable>[] unconstructorAttrs, final Serializable... values) {
|
||||||
|
if (values == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
T obj;
|
||||||
|
int index = -1;
|
||||||
|
if (this.constructorParameters == null) {
|
||||||
|
obj = creator.create();
|
||||||
|
} else {
|
||||||
|
Object[] cps = new Object[this.constructorParameters.length];
|
||||||
|
for (int i = 0; i < constructorAttrs.length; i++) {
|
||||||
|
Attribute<T, Serializable> attr = constructorAttrs[i];
|
||||||
|
if (attr == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
cps[i] = values[++index];
|
||||||
|
}
|
||||||
|
obj = creator.create(cps);
|
||||||
|
}
|
||||||
|
if (unconstructorAttrs != null) {
|
||||||
|
for (Attribute<T, Serializable> attr : unconstructorAttrs) {
|
||||||
|
if (attr == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
attr.set(obj, values[++index]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
|
||||||
protected Serializable getFieldValue(Attribute<T, Serializable> attr, final DataResultSetRow row, int index) {
|
protected Serializable getFieldValue(Attribute<T, Serializable> attr, final DataResultSetRow row, int index) {
|
||||||
return row.getObject(attr, index, index > 0 ? null : this.getSQLColumn(null, attr.field()));
|
return row.getObject(attr, index, index > 0 ? null : this.getSQLColumn(null, attr.field()));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user