public static Object getForInitSet(String className, java.io.Serializable id) {
Session s = BaseDB.getSession();
Object obj = null;
try {
s.beginTransaction();
obj = s.get(className, id);
Field[] fields=obj.getClass().getDeclaredFields();//getFields();
for (int i = 0; i < fields.length; i++) {
try {
fields[i].getType().asSubclass(Collection.class);
// if("Set".equalsIgnoreCase(fields[i].getType().getSimpleName())){
Object temp=null;
try {
temp = PropertyUtils.getProperty(obj, fields[i]
.getName());
} catch (Exception e) {
}
if (temp != null && !Hibernate.isInitialized(temp))
try {
Hibernate.initialize(temp);
} catch (HibernateException e) {
System.out.println(fields[i].getName()
+ " is ill in " + obj.getClass().getName());
}
// }
} catch (ClassCastException e1) {
}
}
s.getTransaction().commit();
} catch (HibernateException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} finally {
if (s != null)
s.close();
}
return obj;
}