}
public CompositeDataFacade() {}
public Object create(Object o) throws easyJ.common.EasyJException {
Session session = null;
try {
session = SessionFactory.openSession();
Class clazz = o.getClass();
o = session.create(o);
String primaryKeyName = BeanUtil.getPrimaryKeyName(o.getClass());
Object primaryKeyValue = BeanUtil.getPrimaryKeyValue(o);
String[] subClassProperties = BeanUtil.getSubClassProperties(clazz);
for (int i = 0; i < subClassProperties.length; i++) {
String property = subClassProperties[i];
ArrayList propertyValues = (ArrayList) BeanUtil.getFieldValue(
o, property);
for (int j = 0; j < propertyValues.size(); j++) {
Object detail = propertyValues.get(j);
BeanUtil.setFieldValue(detail, primaryKeyName,
primaryKeyValue);
session.create(detail);
}
}
} finally {
if (session != null)
session.close();
}
return o;
}