From 5f6a8c5a12e11d4f398da7f6dc95b83394bffac4 Mon Sep 17 00:00:00 2001 From: redkale Date: Mon, 23 Sep 2024 23:08:10 +0800 Subject: [PATCH] EntityFullFunc --- .../org/redkale/source/EntityFullFunc.java | 38 ++++-------- .../redkale/test/source/FullBeanDynFunc.java | 58 ++++++++++--------- 2 files changed, 42 insertions(+), 54 deletions(-) diff --git a/src/main/java/org/redkale/source/EntityFullFunc.java b/src/main/java/org/redkale/source/EntityFullFunc.java index 0f91ae102..5e731710c 100644 --- a/src/main/java/org/redkale/source/EntityFullFunc.java +++ b/src/main/java/org/redkale/source/EntityFullFunc.java @@ -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 { 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 { 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) { diff --git a/src/test/java/org/redkale/test/source/FullBeanDynFunc.java b/src/test/java/org/redkale/test/source/FullBeanDynFunc.java index 8224e7388..84878d04e 100644 --- a/src/test/java/org/redkale/test/source/FullBeanDynFunc.java +++ b/src/test/java/org/redkale/test/source/FullBeanDynFunc.java @@ -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 { 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 { 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; } }