package kernel.dao; import java.util.Collection; import java.util.Map; import java.util.Map.Entry; import org.hibernate.Query; import org.hibernate.proxy.HibernateProxy; import org.springframework.util.CollectionUtils; public abstract class HibernateUtils extends SQLUtils { public static Object resolveRealObject(Object proxy) { if (proxy == null) { return null; } if (proxy instanceof HibernateProxy) { return ((HibernateProxy) proxy).getHibernateLazyInitializer().getImplementation(); } return proxy; } public static void applyParameters(Query queryObject, Map parameters) { if (!CollectionUtils.isEmpty(parameters)) { for (Entry entry : parameters.entrySet()) { String key = entry.getKey(); Object value = entry.getValue(); if (value instanceof Collection) { queryObject.setParameterList(key, (Collection) value); } else if (value instanceof Object[]) { queryObject.setParameterList(key, (Object[]) value); } else { queryObject.setParameter(key, value); } } } } }