private void registerObject(final Object obj) { if (obj == null) { return; } if (HibernateUtils.isEntity(obj.getClass()) == false) { return; } if (this.ignoreFromSaving.contains(obj.getClass()) == true) { // Don't need this objects as "top level" objects in list. They're usually encapsulated. return; } List<Object> list = this.allObjects.get(obj.getClass()); if (list == null) { list = new ArrayList<Object>(); this.allObjects.put(obj.getClass(), list); } list.add(obj); }
private void save(final Class<?> type) { if (ignoreFromSaving.contains(type) == true || writtenObjectTypes.contains(type) == true) { // Already written. return; } writtenObjectTypes.add(type); // Persistente Klasse? if (HibernateUtils.isEntity(type) == false) { return; } if (log.isDebugEnabled() == true) { log.debug("Writing objects from type: " + type); } final List<Object> list = allObjects.get(type); if (list == null) { return; } for (final Object obj : list) { if (obj == null || writtenObjects.contains(obj) == true) { // Object null or already written. Skip this item. continue; } if (session.contains(obj) == true) { continue; } try { if (log.isDebugEnabled()) { log.debug("Try to write object " + obj); } Serializable id = onBeforeSave(session, obj); if (id == null) { id = save(obj); } onAfterSave(obj, id); if (log.isDebugEnabled() == true) { log.debug("wrote object " + obj + " under id " + id); } } catch (final HibernateException ex) { log.fatal("Failed to write " + obj + " ex=" + ex, ex); } catch (final NullPointerException ex) { log.fatal("Failed to write " + obj + " ex=" + ex, ex); } } }