log.debug("Storing hierarchical object "+obj);
Session session = getSession();
HierarchicalPersistentObject mNewParent = obj.getNewParent();
boolean fresh = (obj.getId() == null || "".equals(obj.getId()));
if (fresh) {
// Object has never been written to database, so save it.
// This makes obj into a persistent instance.
session.save(obj);
}
if(!session.contains(obj)) {
// Object has been written to database, but instance passed in
// is not a persistent instance, so must be loaded into session.
HierarchicalPersistentObject vo =
(HierarchicalPersistentObject)session.load(obj.getClass(),obj.getId());
vo.setData(obj);
obj = vo;
}
if (fresh) {
// Every fresh cat needs a parent assoc