X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=support%2Fspring%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fpersistence%2Fhibernate%2FHibernateSupport.java;h=8eb7790bbf3e0d02fb607983945c7ad5c4a6375d;hb=e27d51b0e8f5e2547b243015dec3f590aeabb733;hp=ef0ac40af32811ef8d7b8bf6c2e640a6a1a2f86b;hpb=8de36ff0206c996baf3ee4adc3e2293b12ff5f39;p=utils diff --git a/support/spring/src/main/java/org/wamblee/persistence/hibernate/HibernateSupport.java b/support/spring/src/main/java/org/wamblee/persistence/hibernate/HibernateSupport.java index ef0ac40a..8eb7790b 100644 --- a/support/spring/src/main/java/org/wamblee/persistence/hibernate/HibernateSupport.java +++ b/support/spring/src/main/java/org/wamblee/persistence/hibernate/HibernateSupport.java @@ -1,12 +1,12 @@ /* - * Copyright 2005 the original author or authors. - * + * Copyright 2005-2010 the original author or authors. + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -15,21 +15,18 @@ */ package org.wamblee.persistence.hibernate; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import org.springframework.orm.hibernate3.HibernateTemplate; -import org.springframework.orm.hibernate3.support.HibernateDaoSupport; - -import org.wamblee.persistence.Persistent; - import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; - import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.Map.Entry; +import java.util.logging.Logger; + +import org.springframework.orm.hibernate3.HibernateTemplate; +import org.springframework.orm.hibernate3.support.HibernateDaoSupport; +import org.wamblee.persistence.Persistent; /** * Extension of @@ -38,7 +35,7 @@ import java.util.Set; * @author Erik Brakkee */ public class HibernateSupport extends HibernateDaoSupport { - private static final Log LOG = LogFactory.getLog(HibernateSupport.class); + private static final Logger LOG = Logger.getLogger(HibernateSupport.class.getName()); /** * Constructs the object. @@ -113,11 +110,11 @@ public class HibernateSupport extends HibernateDaoSupport { aProcessed.add(elem); - LOG.debug("Setting pk/version on " + aPersistent + " from " + aMerged); + LOG.fine("Setting pk/version on " + aPersistent + " from " + aMerged); if ((aPersistent.getPrimaryKey() != null) && !aMerged.getPrimaryKey().equals(aPersistent.getPrimaryKey())) { - LOG.error("Mismatch between primary key values: " + aPersistent + + LOG.warning("Mismatch between primary key values: " + aPersistent + " " + aMerged); } else { aPersistent.setPersistedVersion(aMerged.getPersistedVersion()); @@ -243,21 +240,22 @@ public class HibernateSupport extends HibernateDaoSupport { * List of processed persistent objects. * */ - public static void processMap(Map aPersistent, Map aMerged, + public static void processMap(Map aPersistent, Map aMerged, List aProcessed) { if (aMerged.size() != aPersistent.size()) { throw new RuntimeException("Sizes differ " + aMerged.size() + " " + aPersistent.size()); } - Set keys = aMerged.keySet(); + Set> entries = aMerged.entrySet(); - for (Object key : keys) { + for (Entry entry : entries) { + Key key = entry.getKey(); if (!aPersistent.containsKey(key)) { throw new RuntimeException("Key '" + key + "' not found"); } - Object mergedValue = aMerged.get(key); + Value mergedValue = entry.getValue(); Object persistentValue = aPersistent.get(key); if (mergedValue instanceof Persistent) { @@ -287,6 +285,12 @@ public class HibernateSupport extends HibernateDaoSupport { } public boolean equals(Object aObj) { + if (aObj == null) { + return false; + } + if (!(aObj instanceof ObjectElem)) { + return false; + } return ((ObjectElem) aObj).object == object; }