Object _tarObj = null;
try {
_tarObj = tarGetter.invoke(t);
} catch (Exception e) {
throw new DAOException(tarGetter + " invoke exception ", e);
}
// 检查一下目标对象是否存在于数据库
if (_tarObj == null)
continue;
List<?> tarList = (List<?>) _tarObj;
for (int i = 0; i < tarList.size(); i++) {
Object tarObj = tarList.get(i);
String from = froms[0].name();
String to = tos[0].name();
ReflectUtil tarRu = new ReflectUtil(tarObj);
Method tarIdGetter = tarRu.getGetter(tarIdField);
Object _tarIdVal = null;
try {
_tarIdVal = tarIdGetter.invoke(tarObj);
} catch (Exception e) {
throw new DAOException(tarIdGetter + " invoke exception ",e);
}
if (_tarIdVal == null)
continue;
String tarIdVal = String.valueOf(_tarIdVal);
Object tempObj = DAOFactory.getSelectDAO(dsName).selectOne(tarClass, new String[] { tarIdField },new String[] { tarIdVal });
if (tempObj == null) {
// 如果目标对象不存在于数据库,则将目标对象插入到数据库
Object tarIdValObj = DAOFactory.getInsertDAO(dsName).insert(tarObj);
// 将获取到的id值注入到tarObj中
Method tarIdSetter = tarRu.getSetter(tarIdField);
try {
tarIdSetter.invoke(tarObj, tarIdValObj);
} catch (Exception e) {
throw new DAOException(tarIdSetter + " invoke exception ", e);
}
tarIdVal = String.valueOf(tarIdValObj);
}
// 插入到关系表中