以实体类fileEntity为例
@SelectBeforeUpdate(value = true)
@DynamicInsert(value = true)
@DynamicUpdate(value = true)
@javax.persistence.Entity
@javax.persistence.Table(name = "T_HSDA_FILE_ENTITY")
@AccessType("field")
public class HsdaFileEntity implements Serializable{
/**
*
*/
private static final long serialVersionUID = -8514137655083637896L;
public HsdaFileEntity(){
}
/**
*主键id
*/
@Id
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid")
private String objectid;
/**
*案卷id
*/
@Column(name = "VOLUME_ID", length = 32)
private String volumeId;
/**
*案卷号
*/
@Column(name = "VOLUME_NUM", length = 50)
private String volumeNum;
/**
*全宗号
*/
@Column(name = "GROUP_RECORD_NUM", length = 50)
private String groupRecordNum;
/**
*密级
*/
@Column(name = "SEC_LEVEL", length = 50)
private String secLevel;
/**
*归档年度
*/
@Column(name = "ARCHIVE_YEAR", length = 50)
private String archiveYear;
/**
*保管期限
*/
@Column(name = "STORE_PERIOD", length = 50)
private String storePeriod;
/**
*保管期限-名称
*/
@Code2MC(dmFieldMc = "storePeriod", lxjp = "BGQX")
@Transient
private String storePeriod__;
/**
*是否归档
*/
@Column(name = "IS_ARCHIVED", length = 1)
private String isArchived;
/**
*档号
*/
@Column(name = "FILE_NUM", length = 200)
private String fileNum;
/**
*门类ID
*/
@Column(name = "category_id", length = 32)
private String categoryId;
/**
//省略setter....
/*
* 实列化类 方法2
*/
HsdaFileEntity bean = new HsdaFileEntity();bean.set..... // 得到类对象
Class fileEntityClass = (Class) bean.getClass();
/* * 得到类中的所有属性集合 */
Field[] fs = fileEntityClass.getDeclaredFields();for(
int i = 0;i<fs.length;i++)
{
Field f = fs[i];
f.setAccessible(true); // 设置些属性是可以访问的
Object val = f.get(bean);// 得到此属性的值
System.out.println("name:" + f.getName() + "\t value = " + val);
String type = f.getType().toString();// 得到此属性的类型
if (type.endsWith("String")) {
System.out.println(f.getType() + "\t是String");
f.set(bean, "12"); // 给属性设值
} else if (type.endsWith("int") || type.endsWith("Integer")) {
System.out.println(f.getType() + "\t是int");
f.set(bean, 12); // 给属性设值
} else {
System.out.println(f.getType() + "\t");
}
}
/* * 得到类中的方法 */
Method[] methods = fileEntityClass.getMethods();
for(
int i = 0;i<methods.length;i++)
{
Method method = methods[i];
if (method.getName().startsWith("get")) {
System.out.print("methodName:" + method.getName() + "\t");
System.out.println("value:" + method.invoke(bean));// 得到get 方法的值
}
}
}
// 查询机构或问题对应的值 我们这是表单设计器设计出来的字段不固定,所以通过另一张表关联起来
HsdaDescItemConfig descItemConfig = descItemConfigDao.getHsdaItemByCon2(levelId, "机构或问题");
// 获取hsdaFileEntity反射
Class fileEntityClass = hsdaFileEntity.getClass();
// 获取类对应的字段
Field field = fileEntityClass.getDeclaredField(descItemConfig.getFieldName());
field.setAccessible(true);
// 获取对应字段的值
String value = field.get(hsdaFileEntity).toString();