EntityFullFunc

This commit is contained in:
redkale
2024-09-23 23:08:10 +08:00
parent 6aa4e87b35
commit 5f6a8c5a12
2 changed files with 42 additions and 54 deletions

View File

@@ -13,31 +13,7 @@ import org.redkale.asm.ClassWriter;
import org.redkale.asm.Label;
import org.redkale.asm.MethodVisitor;
import org.redkale.asm.Opcodes;
import static org.redkale.asm.Opcodes.AALOAD;
import static org.redkale.asm.Opcodes.ACC_BRIDGE;
import static org.redkale.asm.Opcodes.ACC_FINAL;
import static org.redkale.asm.Opcodes.ACC_PUBLIC;
import static org.redkale.asm.Opcodes.ACC_SUPER;
import static org.redkale.asm.Opcodes.ACC_SYNTHETIC;
import static org.redkale.asm.Opcodes.ACC_VARARGS;
import static org.redkale.asm.Opcodes.ACONST_NULL;
import static org.redkale.asm.Opcodes.ALOAD;
import static org.redkale.asm.Opcodes.ANEWARRAY;
import static org.redkale.asm.Opcodes.ARETURN;
import static org.redkale.asm.Opcodes.ASTORE;
import static org.redkale.asm.Opcodes.CHECKCAST;
import static org.redkale.asm.Opcodes.DCONST_0;
import static org.redkale.asm.Opcodes.FCONST_0;
import static org.redkale.asm.Opcodes.GETFIELD;
import static org.redkale.asm.Opcodes.ICONST_0;
import static org.redkale.asm.Opcodes.IFEQ;
import static org.redkale.asm.Opcodes.INVOKEINTERFACE;
import static org.redkale.asm.Opcodes.INVOKESPECIAL;
import static org.redkale.asm.Opcodes.INVOKEVIRTUAL;
import static org.redkale.asm.Opcodes.LCONST_0;
import static org.redkale.asm.Opcodes.PUTFIELD;
import static org.redkale.asm.Opcodes.RETURN;
import static org.redkale.asm.Opcodes.V11;
import static org.redkale.asm.Opcodes.*;
import org.redkale.asm.Type;
import org.redkale.util.Attribute;
import org.redkale.util.Creator;
@@ -182,7 +158,11 @@ public abstract class EntityFullFunc<T> {
try {
field = entityType.getField(attr.field());
} catch (Exception e2) {
// do nothing
try {
setter = entityType.getMethod(attr.field(), attr.type());
} catch (Exception e3) {
// do nothing
}
}
}
if (attr.type() == boolean.class) {
@@ -501,7 +481,11 @@ public abstract class EntityFullFunc<T> {
try {
field = entityType.getField(attr.field());
} catch (Exception e2) {
// do nothing
try {
setter = entityType.getMethod(attr.field(), attr.type());
} catch (Exception e3) {
// do nothing
}
}
}
if (setter == null && field == null) {

View File

@@ -5,6 +5,7 @@
package org.redkale.test.source;
import java.io.Serializable;
import java.math.BigDecimal;
import java.math.BigInteger;
import org.redkale.source.DataResultSetRow;
import org.redkale.source.EntityFullFunc;
@@ -30,24 +31,23 @@ public class FullBeanDynFunc extends EntityFullFunc<FullBean> {
rs.setSeqid(row.getLong(1, 0));
rs.setName(row.getString(2));
rs.setImg(row.getBytes(3));
setFieldValue(4, row, rs); // number: BigInteger
rs.setScale(row.getBigDecimal(5));
setFieldValue(6, row, rs); // bit: Byte
setFieldValue(4, row, rs); // bit: Byte
rs.setFlag(row.getBoolean(7, false));
rs.setStatus(row.getShort(8, (short) 0));
rs.setId(row.getInteger(9, 0));
rs.setCreateTime(row.getLong(10, 0));
rs.setPoint(row.getFloat(11, 0f));
rs.setMoney(row.getDouble(12, 0d));
rs.setFlag(row.getBoolean(5, false));
rs.setStatus(row.getShort(6, (short) 0));
rs.setId(row.getInteger(7, 0));
rs.setCreateTime(row.getLong(8, 0));
rs.setPoint(row.getFloat(9, 0f));
rs.setMoney(row.getDouble(10, 0d));
rs.setFlag2(row.getBoolean(5));
rs.setStatus2(row.getShort(6));
rs.setId2(row.getInteger(7));
rs.setCreateTime2(row.getLong(8));
rs.setPoint2(row.getFloat(9));
rs.setMoney2(row.getDouble(10));
rs.setFlag2(row.getBoolean(13));
rs.setStatus2(row.getShort(14));
rs.setId2(row.getInteger(15));
rs.setCreateTime2(row.getLong(16));
rs.setPoint2(row.getFloat(17));
rs.setMoney2(row.getDouble(18));
return rs;
}
@@ -58,18 +58,22 @@ public class FullBeanDynFunc extends EntityFullFunc<FullBean> {
rs.setName((String) values[1]);
rs.setImg((byte[]) values[2]);
rs.setNumber((BigInteger) values[3]);
rs.setFlag((Boolean) values[4]);
rs.setStatus((Short) values[5]);
rs.setId((Integer) values[6]);
rs.setCreateTime((Long) values[7]);
rs.setPoint((Float) values[8]);
rs.setMoney((Double) values[9]);
rs.setFlag2((Boolean) values[10]);
rs.setStatus2((Short) values[11]);
rs.setId2((Integer) values[12]);
rs.setCreateTime2((Long) values[13]);
rs.setPoint2((Float) values[14]);
rs.setMoney2((Double) values[15]);
rs.setScale((BigDecimal) values[4]);
rs.setBit((Byte) values[5]);
rs.setFlag((Boolean) values[6]);
rs.setStatus((Short) values[7]);
rs.setId((Integer) values[8]);
rs.setCreateTime((Long) values[9]);
rs.setPoint((Float) values[10]);
rs.setMoney((Double) values[11]);
rs.setFlag2((Boolean) values[12]);
rs.setStatus2((Short) values[13]);
rs.setId2((Integer) values[14]);
rs.setCreateTime2((Long) values[15]);
rs.setPoint2((Float) values[16]);
rs.setMoney2((Double) values[17]);
return rs;
}
}