From: <gca...@us...> - 2009-09-07 09:37:30
|
Revision: 1437 http://openutils.svn.sourceforge.net/openutils/?rev=1437&view=rev Author: gcatania Date: 2009-09-07 09:37:23 +0000 (Mon, 07 Sep 2009) Log Message: ----------- BSHD-3 - minor improvements to code readability Modified Paths: -------------- trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java Modified: trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java =================================================================== --- trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2009-09-07 08:27:54 UTC (rev 1436) +++ trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2009-09-07 09:37:23 UTC (rev 1437) @@ -49,17 +49,14 @@ */ public HibernateDAOImpl() { - super(); } /** * Sets the class of the persistent bean managed by this DAO * @param referenceClass the class for the bean managed by this DAO */ - @SuppressWarnings({"unchecked" }) - public HibernateDAOImpl(final Class referenceClass) + public HibernateDAOImpl(Class<T> referenceClass) { - super(); this.referenceClass = referenceClass; } @@ -67,7 +64,7 @@ * {@inheritDoc} */ @SuppressWarnings("unchecked") - public List<T> find(final String query) + public List<T> find(String query) { return getHibernateTemplate().find(query); } @@ -83,7 +80,7 @@ /** * {@inheritDoc} */ - public List<T> findAll(final Order[] orderProperties) + public List<T> findAll(Order[] orderProperties) { return getThis().findAll(orderProperties, Collections.<Criterion> emptyList()); } @@ -123,7 +120,7 @@ /** * {@inheritDoc} */ - public List<T> find(final String query, final Object obj, final Type type) + public List<T> find(String query, Object obj, Type type) { return find(query, new Object[]{obj }, new Type[]{type }); } @@ -148,9 +145,9 @@ /** * {@inheritDoc} */ - @SuppressWarnings("unchecked") - public T load(final K key) + public T load(K key) { + @SuppressWarnings("unchecked") T result = (T) getHibernateTemplate().load(getReferenceClass(), key); Hibernate.initialize(result); return result; @@ -159,31 +156,30 @@ /** * {@inheritDoc} */ - @SuppressWarnings("unchecked") - public T loadIfAvailable(final K key) + public T loadIfAvailable(K key) { - T result; try { - result = (T) getHibernateTemplate().get(getReferenceClass(), key); + @SuppressWarnings("unchecked") + T result = (T) getHibernateTemplate().get(getReferenceClass(), key); if (result != null) { Hibernate.initialize(result); + return result; } } catch (ObjectNotFoundException e) { - // during lazy initialization - return null; + // thrown by HibernateTemplate#get() if the object does not exist } - return result; + return null; } /** * {@inheritDoc} */ @SuppressWarnings("unchecked") - public T get(final K key) + public T get(K key) { return (T) getHibernateTemplate().get(getReferenceClass(), key); } @@ -191,7 +187,7 @@ /** * {@inheritDoc} */ - public void saveOrUpdate(final T obj) + public void saveOrUpdate(T obj) { getHibernateTemplate().saveOrUpdate(obj); } @@ -199,7 +195,7 @@ /** * {@inheritDoc} */ - public void update(final T obj) + public void update(T obj) { getHibernateTemplate().update(obj); } @@ -225,7 +221,7 @@ /** * {@inheritDoc} */ - public void refresh(final T obj) + public void refresh(T obj) { getHibernateTemplate().refresh(obj); } @@ -233,7 +229,7 @@ /** * {@inheritDoc} */ - public void evict(final T obj) + public void evict(T obj) { getHibernateTemplate().evict(obj); } @@ -259,7 +255,7 @@ * {@inheritDoc} */ @SuppressWarnings("unchecked") - public K save(final T obj) + public K save(T obj) { return (K) getHibernateTemplate().save(obj); } @@ -267,7 +263,7 @@ /** * {@inheritDoc} */ - public T findFilteredFirst(final T filter) + public T findFilteredFirst(T filter) { return getFirstInCollection(findFiltered(filter, 1, 0)); } @@ -275,7 +271,7 @@ /** * {@inheritDoc} */ - public T findFilteredFirst(final T filter, final Order[] order) + public T findFilteredFirst(T filter, final Order[] order) { return getFirstInCollection(findFiltered(filter, order, getDefaultFilterMetadata(), 1, 0)); } @@ -283,15 +279,15 @@ /** * {@inheritDoc} */ - public T findFilteredFirst(final T filter, final List< ? extends Criterion> criteria) + public T findFilteredFirst(T filter, List< ? extends Criterion> criteria) { - return getFirstInCollection(findFiltered(filter, null, getDefaultFilterMetadata(), 1, 0, criteria)); + return getFirstInCollection(findFiltered(filter, getDefaultOrder(), getDefaultFilterMetadata(), 1, 0, criteria)); } /** * {@inheritDoc} */ - public List<T> findFiltered(final T filter) + public List<T> findFiltered(T filter) { return findFiltered(filter, getDefaultFilterMetadata()); } @@ -299,7 +295,7 @@ /** * {@inheritDoc} */ - public List<T> findFiltered(final T filter, final Order[] orderProperties) + public List<T> findFiltered(T filter, Order[] orderProperties) { return findFiltered(filter, orderProperties, getDefaultFilterMetadata(), Integer.MAX_VALUE, 0); } @@ -307,7 +303,7 @@ /** * {@inheritDoc} */ - public List<T> findFiltered(final T filter, final Map<String, ? extends FilterMetadata> metadata) + public List<T> findFiltered(T filter, Map<String, ? extends FilterMetadata> metadata) { return findFiltered(filter, metadata, Integer.MAX_VALUE, 0); } @@ -315,7 +311,7 @@ /** * {@inheritDoc} */ - public List<T> findFiltered(final T filter, final int maxResults, final int page) + public List<T> findFiltered(T filter, int maxResults, int page) { return findFiltered(filter, getDefaultFilterMetadata(), maxResults, page); } @@ -323,17 +319,16 @@ /** * {@inheritDoc} */ - public List<T> findFiltered(final T filter, final Map<String, ? extends FilterMetadata> metadata, - final int maxResults, final int page) + public List<T> findFiltered(T filter, Map<String, ? extends FilterMetadata> metadata, int maxResults, int page) { - return findFiltered(filter, null, metadata, maxResults, page); + return findFiltered(filter, getDefaultOrder(), metadata, maxResults, page); } /** * {@inheritDoc} */ - public List<T> findFiltered(final T filter, final Order[] customOrder, - final Map<String, ? extends FilterMetadata> metadata, final int maxResults, final int page) + public List<T> findFiltered(T filter, Order[] customOrder, Map<String, ? extends FilterMetadata> metadata, + int maxResults, int page) { return getThis().findFiltered( filter, @@ -348,41 +343,34 @@ * {@inheritDoc} */ @SuppressWarnings("unchecked") - public List<T> findFiltered(final T filter, final Order[] customOrder, - final Map<String, ? extends FilterMetadata> metadata, final int maxResults, final int page, - final List< ? extends Criterion> additionalCriteria) + public List<T> findFiltered(T filter, Order[] customOrder, Map<String, ? extends FilterMetadata> metadata, + int maxResults, int page, List< ? extends Criterion> additionalCriteria) { - final Order[] orderProperties = customOrder != null && customOrder.length > 0 ? customOrder : this - .getDefaultOrder(); - return (List<T>) getHibernateTemplate().execute( new HibernateCallbackForExecution( filter, page, maxResults, metadata, - orderProperties, + customOrder, additionalCriteria, - null)); + Collections.<String> emptyList())); } /** * {@inheritDoc} */ - public List< ? > findFilteredProperties(final T filter, final Order[] customOrder, - final Map<String, ? extends FilterMetadata> metadata, final int maxResults, final int page, - final List< ? extends Criterion> additionalCriteria, final List<String> properties) + public List< ? > findFilteredProperties(T filter, Order[] customOrder, + Map<String, ? extends FilterMetadata> metadata, int maxResults, int page, + List< ? extends Criterion> additionalCriteria, List<String> properties) { - final Order[] orderProperties = customOrder != null && customOrder.length > 0 ? customOrder : this - .getDefaultOrder(); - return (List< ? >) getHibernateTemplate().execute( new HibernateCallbackForExecution( filter, page, maxResults, metadata, - orderProperties, + customOrder, additionalCriteria, properties)); } @@ -396,7 +384,7 @@ return referenceClass; } - public void setReferenceClass(final Class<T> referenceClass) + public void setReferenceClass(Class<T> referenceClass) { this.referenceClass = referenceClass; } @@ -482,7 +470,7 @@ * @deprecated use the better named <code>findByNamedQuery</code> method */ @Deprecated - protected List< ? > getNamedQuery(final String name, final Serializable[] params, final int maxResults) + protected List< ? > getNamedQuery(String name, Serializable[] params, int maxResults) { return findByNamedQuery(name, params, maxResults > 0 ? maxResults : Integer.MAX_VALUE); } @@ -496,7 +484,7 @@ * @deprecated use the better named <code>findByNamedQuery</code> method */ @Deprecated - protected List< ? > getNamedQuery(final String name, final Map<String, ? > params, final int maxResults) + protected List< ? > getNamedQuery(String name, Map<String, ? > params, int maxResults) { return findByNamedQuery(name, params, maxResults > 0 ? maxResults : Integer.MAX_VALUE); } @@ -508,7 +496,7 @@ * @param key the key name * @param value the object to set as the parameter */ - protected void setParameterValue(final Query query, final String key, final Object value) + protected void setParameterValue(Query query, String key, Object value) { if (null == key || null == value) { @@ -532,7 +520,7 @@ * @param list collection * @return first element in the list */ - private T getFirstInCollection(final Collection< ? extends T> list) + private T getFirstInCollection(Collection< ? extends T> list) { if (list != null && !list.isEmpty()) { @@ -547,7 +535,7 @@ * Sets the aopenabled. * @param aopenabled the aopenabled to set */ - public void setAopenabled(final boolean aopenabled) + public void setAopenabled(boolean aopenabled) { this.aopenabled = aopenabled; } @@ -584,56 +572,31 @@ * @author carone * @version $Id$ */ - private final class HibernateCallbackForExecution implements HibernateCallback + private class HibernateCallbackForExecution implements HibernateCallback { - /** - * - */ - private final T filter; + private T filter; - /** - * - */ - private final int page; + private int page; - /** - * - */ - private final int maxResults; + private int maxResults; - /** - * - */ - private final Map<String, ? extends FilterMetadata> metadata; + private Map<String, ? extends FilterMetadata> metadata; - /** - * - */ - private final List<String> properties; + private List<String> properties; - /** - * - */ - private final Order[] orderProperties; + private Order[] orderProperties; private List< ? extends Criterion> additionalCriteria; - /** - * @param filter - * @param page - * @param maxResults - * @param metadata - * @param orderProperties - */ private HibernateCallbackForExecution( - final T filter, - final int page, - final int maxResults, - final Map<String, ? extends FilterMetadata> metadata, - final Order[] orderProperties, - final List< ? extends Criterion> additionalCriteria, - final List<String> properties) + T filter, + int page, + int maxResults, + Map<String, ? extends FilterMetadata> metadata, + Order[] orderProperties, + List< ? extends Criterion> additionalCriteria, + List<String> properties) { this.filter = filter; this.page = page; @@ -644,14 +607,14 @@ this.properties = properties; } - public Object doInHibernate(final Session ses) throws HibernateException + public Object doInHibernate(Session ses) throws HibernateException { Criteria crit = ses.createCriteria(filter.getClass()); crit.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); crit.setMaxResults(maxResults); crit.setFirstResult(maxResults * page); - if (orderProperties != null && orderProperties.length > 0) + if (orderProperties != null) { for (Order order : orderProperties) { @@ -662,7 +625,7 @@ } } EnhancedExample.create(crit, filter, metadata); - if (additionalCriteria != null && !additionalCriteria.isEmpty()) + if (additionalCriteria != null) { for (Criterion criterion : additionalCriteria) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gca...@us...> - 2009-09-07 09:38:07
|
Revision: 1438 http://openutils.svn.sourceforge.net/openutils/?rev=1438&view=rev Author: gcatania Date: 2009-09-07 09:38:00 +0000 (Mon, 07 Sep 2009) Log Message: ----------- BSHD-4 - fixed Modified Paths: -------------- trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java Modified: trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java =================================================================== --- trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2009-09-07 09:37:23 UTC (rev 1437) +++ trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2009-09-07 09:38:00 UTC (rev 1438) @@ -122,7 +122,7 @@ */ public List<T> find(String query, Object obj, Type type) { - return find(query, new Object[]{obj }, new Type[]{type }); + return getThis().find(query, new Object[]{obj }, new Type[]{type }); } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gca...@us...> - 2012-05-21 08:54:38
|
Revision: 4046 http://openutils.svn.sourceforge.net/openutils/?rev=4046&view=rev Author: gcatania Date: 2012-05-21 08:54:27 +0000 (Mon, 21 May 2012) Log Message: ----------- BSHD-2 source cleanup Modified Paths: -------------- trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java Modified: trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java =================================================================== --- trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2012-05-21 08:48:00 UTC (rev 4045) +++ trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2012-05-21 08:54:27 UTC (rev 4046) @@ -37,6 +37,7 @@ import java.util.Map; import org.aopalliance.aop.AspectException; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.MapUtils; import org.apache.commons.lang.StringUtils; import org.hibernate.Criteria; @@ -54,7 +55,6 @@ import org.springframework.aop.framework.AopContext; import org.springframework.orm.hibernate3.HibernateCallback; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; -import org.springframework.util.CollectionUtils; /** @@ -131,7 +131,6 @@ return getHibernateTemplate().execute(new HibernateCallback<List<T>>() { - @SuppressWarnings("unchecked") public List<T> doInHibernate(final Session ses) throws HibernateException { Criteria crit = ses.createCriteria(getReferenceClass()); @@ -157,7 +156,6 @@ /** * {@inheritDoc} */ - @SuppressWarnings("unchecked") public List<T> find(String query) { return getHibernateTemplate().find(query); @@ -168,7 +166,7 @@ */ public List<T> find(String query, Object paramValue, Type paramType) { - return getThis().find(query, new Object[]{paramValue }, new Type[]{paramType }); + return getThis().find(query, new Object[]{paramValue}, new Type[]{paramType}); } /** @@ -179,7 +177,6 @@ return getHibernateTemplate().execute(new HibernateCallback<List<T>>() { - @SuppressWarnings("unchecked") public List<T> doInHibernate(final Session ses) throws HibernateException { // hibernate 3 @@ -345,7 +342,6 @@ /** * {@inheritDoc} */ - @SuppressWarnings("unchecked") public K save(T obj) { return (K) getHibernateTemplate().save(obj); @@ -407,7 +403,6 @@ return getHibernateTemplate().execute(new HibernateCallback<T>() { - @SuppressWarnings("unchecked") public T doInHibernate(final Session ses) throws HibernateException { return (T) ses.merge(obj); @@ -560,7 +555,6 @@ return getHibernateTemplate().execute(new HibernateCallback<List<Object>>() { - @SuppressWarnings("unchecked") public List<Object> doInHibernate(final Session ses) throws HibernateException { Query q = ses.getNamedQuery(name); @@ -592,7 +586,6 @@ return getHibernateTemplate().execute(new HibernateCallback<List<Object>>() { - @SuppressWarnings("unchecked") public List<Object> doInHibernate(final Session ses) throws HibernateException { Query q = ses.getNamedQuery(name); @@ -705,7 +698,6 @@ /** * @return This is needed as for http://opensource.atlassian.com/projects/spring/browse/SPR-2226 */ - @SuppressWarnings("unchecked") private HibernateDAO<T, K> getThis() { try @@ -863,7 +855,6 @@ return crit; } - @SuppressWarnings("unchecked") public List<R> doInHibernate(Session session) throws HibernateException, SQLException { return createCriteria(session).list(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gca...@us...> - 2012-06-29 16:51:40
|
Revision: 4084 http://openutils.svn.sourceforge.net/openutils/?rev=4084&view=rev Author: gcatania Date: 2012-06-29 16:51:34 +0000 (Fri, 29 Jun 2012) Log Message: ----------- avoid legacy whenever possible Modified Paths: -------------- trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java Modified: trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java =================================================================== --- trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2012-06-29 16:34:55 UTC (rev 4083) +++ trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2012-06-29 16:51:34 UTC (rev 4084) @@ -38,6 +38,7 @@ import org.aopalliance.aop.AspectException; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections.MapUtils; import org.apache.commons.lang3.StringUtils; import org.hibernate.Criteria; import org.hibernate.Hibernate; @@ -482,8 +483,16 @@ public List<T> findFiltered(T filter, Map<String, ? extends FilterMetadata> metadata, int maxResults, int page, List< ? extends Criterion> criteria, Order... orders) { - return getHibernateTemplate().execute( - new LegacySupportCallback<T>(filter, maxResults, page, metadata, criteria, orders)); + HibernateCallback<List<T>> callback; + if (MapUtils.isEmpty(metadata) && CollectionUtils.isEmpty(criteria)) + { + callback = new ExampleTreeCallback<T>(new ExampleTree(filter), maxResults, page, orders); + } + else + { + callback = new LegacySupportCallback<T>(filter, maxResults, page, metadata, criteria, orders); + } + return getHibernateTemplate().execute(callback); } /** @@ -506,8 +515,23 @@ Map<String, ? extends FilterMetadata> metadata, int maxResults, int page, List< ? extends Criterion> criteria, List<String> properties) { - return getHibernateTemplate().execute( - new LegacySupportPropertiesCallback(filter, maxResults, page, metadata, criteria, properties, orders)); + HibernateCallback<List<Object>> callback; + if (MapUtils.isEmpty(metadata) && CollectionUtils.isEmpty(criteria)) + { + callback = new ExampleTreePropertiesCallback(new ExampleTree(filter), maxResults, page, properties, orders); + } + else + { + callback = new LegacySupportPropertiesCallback( + filter, + maxResults, + page, + metadata, + criteria, + properties, + orders); + } + return getHibernateTemplate().execute(callback); } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gca...@us...> - 2012-07-04 13:19:20
|
Revision: 4089 http://openutils.svn.sourceforge.net/openutils/?rev=4089&view=rev Author: gcatania Date: 2012-07-04 13:19:09 +0000 (Wed, 04 Jul 2012) Log Message: ----------- BSHD-2 added support for default filtering on example tree Modified Paths: -------------- trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java Modified: trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java =================================================================== --- trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2012-07-02 12:56:22 UTC (rev 4088) +++ trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2012-07-04 13:19:09 UTC (rev 4089) @@ -190,7 +190,7 @@ */ public List<T> findFiltered(T filter) { - return getThis().findFiltered(new ExampleTree(filter), Integer.MAX_VALUE, 0, getDefaultOrder()); + return getThis().findFiltered(defaultExample(filter), Integer.MAX_VALUE, 0, getDefaultOrder()); } /** @@ -206,7 +206,7 @@ */ public List<T> findFiltered(T filter, Order... orders) { - return getThis().findFiltered(new ExampleTree(filter), Integer.MAX_VALUE, 0, orders); + return getThis().findFiltered(defaultExample(filter), Integer.MAX_VALUE, 0, orders); } /** @@ -222,7 +222,7 @@ */ public List<T> findFiltered(T filter, int maxResults, int page) { - return getThis().findFiltered(new ExampleTree(filter), maxResults, page, getDefaultOrder()); + return getThis().findFiltered(defaultExample(filter), maxResults, page, getDefaultOrder()); } /** @@ -302,7 +302,7 @@ */ public T findFilteredFirst(T filter, List< ? extends Criterion> criteria) { - ExampleTree exampleTree = new ExampleTree(filter); + ExampleTree exampleTree = defaultExample(filter); appendToRoot(exampleTree, criteria); return getFirstInCollection(getThis().findFiltered(exampleTree, Integer.MAX_VALUE, 0, getDefaultOrder())); } @@ -434,7 +434,7 @@ public List<Object> findFilteredProperties(T filter, int maxResults, int page, List<String> properties, Order... orders) { - return getThis().findFilteredProperties(new ExampleTree(filter), maxResults, page, properties, orders); + return getThis().findFilteredProperties(defaultExample(filter), maxResults, page, properties, orders); } /** @@ -486,7 +486,7 @@ HibernateCallback<List<T>> callback; if (MapUtils.isEmpty(metadata) && CollectionUtils.isEmpty(criteria)) { - callback = new ExampleTreeCallback<T>(new ExampleTree(filter), maxResults, page, orders); + callback = new ExampleTreeCallback<T>(defaultExample(filter), maxResults, page, orders); } else { @@ -518,7 +518,7 @@ HibernateCallback<List<Object>> callback; if (MapUtils.isEmpty(metadata) && CollectionUtils.isEmpty(criteria)) { - callback = new ExampleTreePropertiesCallback(new ExampleTree(filter), maxResults, page, properties, orders); + callback = new ExampleTreePropertiesCallback(defaultExample(filter), maxResults, page, properties, orders); } else { @@ -674,11 +674,22 @@ } /** + * Returns the default example tree that will be applied to a filtered search by entity. The default implementation + * just returns an {@link ExampleTree}, subclasses may override. + * @param entity the example (filter) entity + * @return an example for the entity + */ + protected ExampleTree defaultExample(T entity) + { + return new ExampleTree(entity); + } + + /** * Returns the default set of FilterMetadata that will be applied to any query. The default implementation doesn't * set any default filter, subclasses may override this. * @return map of property name - filter metadata - * @deprecated {@link FilterMetadata} has been deprecated in favor of {@link ExampleTree#add(String, Criterion)} and - * {@link ExampleTree#overridePropertyFilter(String, String, Criterion)} + * @deprecated this method uses the deprecated class {@link FilterMetadata}, use {@link #defaultExample(Object)} + * instead */ @Deprecated protected Map<String, ? extends FilterMetadata> getDefaultFilterMetadata() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gca...@us...> - 2014-05-22 09:21:03
|
Revision: 4572 http://openutils.svn.sourceforge.net/openutils/?rev=4572&view=rev Author: gcatania Date: 2014-05-22 09:20:59 +0000 (Thu, 22 May 2014) Log Message: ----------- BSHD-21 fix performance problems with find filtered first Modified Paths: -------------- trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java Modified: trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java =================================================================== --- trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2014-05-21 19:28:04 UTC (rev 4571) +++ trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2014-05-22 09:20:59 UTC (rev 4572) @@ -29,7 +29,6 @@ import it.openutils.hibernate.example.FilterMetadataSupport; import java.io.Serializable; -import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; @@ -269,7 +268,7 @@ */ public T findFilteredFirst(T filter) { - return getFirstInCollection(findFiltered(filter)); + return findFilteredFirst(defaultExample(filter)); } /** @@ -277,7 +276,7 @@ */ public T findFilteredFirst(ExampleTree exampleTree) { - return getFirstInCollection(findFiltered(exampleTree)); + return findFilteredFirst(exampleTree, new Order[0]); } /** @@ -285,25 +284,32 @@ */ public T findFilteredFirst(T filter, final Order... orders) { - return getFirstInCollection(findFiltered(filter, orders)); + return findFilteredFirst(defaultExample(filter), orders); } /** * {@inheritDoc} */ - public T findFilteredFirst(ExampleTree exampleTree, final Order... orders) + public T findFilteredFirst(T filter, List< ? extends Criterion> criteria) { - return getFirstInCollection(findFiltered(exampleTree, orders)); + ExampleTree exampleTree = defaultExample(filter); + appendToRoot(exampleTree, criteria); + return findFilteredFirst(exampleTree, new Order[0]); } /** * {@inheritDoc} */ - public T findFilteredFirst(T filter, List< ? extends Criterion> criteria) + public T findFilteredFirst(ExampleTree exampleTree, final Order... orders) { - ExampleTree exampleTree = defaultExample(filter); - appendToRoot(exampleTree, criteria); - return getFirstInCollection(getThis().findFiltered(exampleTree, Integer.MAX_VALUE, 0, getDefaultOrder())); + List<T> found = getThis().findFiltered(exampleTree, 1, 0, orders); + if (found.isEmpty()) + { + return null; + } + T result = found.get(0); + Hibernate.initialize(result); + return result; } /** @@ -665,22 +671,6 @@ } /** - * Returns the first object in the collection or null if the collection is null or empty. - * @param list collection - * @return first element in the list - */ - private T getFirstInCollection(Collection< ? extends T> list) - { - if (list != null && !list.isEmpty()) - { - T result = list.iterator().next(); - Hibernate.initialize(result); - return result; - } - return null; - } - - /** * appends the input criterions to the input example tree as root entity criterions * @param exampleTree the example tree * @param criterions the criterions to append This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gca...@us...> - 2014-05-22 09:22:32
|
Revision: 4573 http://openutils.svn.sourceforge.net/openutils/?rev=4573&view=rev Author: gcatania Date: 2014-05-22 09:22:26 +0000 (Thu, 22 May 2014) Log Message: ----------- add missing override annotations, ignore static modifier warnings Modified Paths: -------------- trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java Modified: trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java =================================================================== --- trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2014-05-22 09:20:59 UTC (rev 4572) +++ trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2014-05-22 09:22:26 UTC (rev 4573) @@ -122,6 +122,7 @@ /** * {@inheritDoc} */ + @Override public List<T> findAll() { return getThis().find(Collections.<Criterion> emptyList(), getDefaultOrder()); @@ -130,6 +131,7 @@ /** * {@inheritDoc} */ + @Override public List<T> findAll(Order... orders) { @@ -139,6 +141,7 @@ /** * {@inheritDoc} */ + @Override public List<T> find(final List< ? extends Criterion> criteria, final Order... orders) { Criteria crit = createCriteria(); @@ -162,6 +165,7 @@ /** * {@inheritDoc} */ + @Override public List<T> find(String query) { return getCurrentSession().createQuery(query).list(); @@ -170,14 +174,16 @@ /** * {@inheritDoc} */ + @Override public List<T> find(String query, Object paramValue, Type paramType) { - return getThis().find(query, new Object[]{paramValue}, new Type[]{paramType}); + return getThis().find(query, new Object[]{paramValue }, new Type[]{paramType }); } /** * {@inheritDoc} */ + @Override public List<T> find(final String query, final Object[] paramValues, final Type[] paramTypes) { return getCurrentSession().createQuery(query).setParameters(paramValues, paramTypes).list(); @@ -186,6 +192,7 @@ /** * {@inheritDoc} */ + @Override public List<T> findFiltered(T filter) { return getThis().findFiltered(defaultExample(filter), Integer.MAX_VALUE, 0, getDefaultOrder()); @@ -194,6 +201,7 @@ /** * {@inheritDoc} */ + @Override public List<T> findFiltered(ExampleTree exampleTree) { return getThis().findFiltered(exampleTree, Integer.MAX_VALUE, 0, getDefaultOrder()); @@ -202,6 +210,7 @@ /** * {@inheritDoc} */ + @Override public List<T> findFiltered(T filter, Order... orders) { return getThis().findFiltered(defaultExample(filter), Integer.MAX_VALUE, 0, orders); @@ -210,6 +219,7 @@ /** * {@inheritDoc} */ + @Override public List<T> findFiltered(ExampleTree exampleTree, Order... orders) { return getThis().findFiltered(exampleTree, Integer.MAX_VALUE, 0, orders); @@ -218,6 +228,7 @@ /** * {@inheritDoc} */ + @Override public List<T> findFiltered(T filter, int maxResults, int page) { return getThis().findFiltered(defaultExample(filter), maxResults, page, getDefaultOrder()); @@ -226,6 +237,7 @@ /** * {@inheritDoc} */ + @Override public List<T> findFiltered(ExampleTree exampleTree, int maxResults, int page) { return getThis().findFiltered(exampleTree, maxResults, page, getDefaultOrder()); @@ -235,6 +247,7 @@ * @deprecated {@link FilterMetadata} has been deprecated in favor of {@link ExampleTree#add(String, Criterion)} and * {@link ExampleTree#overridePropertyFilter(String, String, Criterion)} {@inheritDoc} */ + @Override @Deprecated public List<T> findFiltered(T filter, Map<String, ? extends FilterMetadata> metadata) { @@ -251,6 +264,7 @@ * @deprecated {@link FilterMetadata} has been deprecated in favor of {@link ExampleTree#add(String, Criterion)} and * {@link ExampleTree#overridePropertyFilter(String, String, Criterion)} {@inheritDoc} */ + @Override @Deprecated public List<T> findFiltered(T filter, Map<String, ? extends FilterMetadata> metadata, int maxResults, int page) { @@ -266,6 +280,7 @@ /** * {@inheritDoc} */ + @Override public T findFilteredFirst(T filter) { return findFilteredFirst(defaultExample(filter)); @@ -274,6 +289,7 @@ /** * {@inheritDoc} */ + @Override public T findFilteredFirst(ExampleTree exampleTree) { return findFilteredFirst(exampleTree, new Order[0]); @@ -282,6 +298,7 @@ /** * {@inheritDoc} */ + @Override public T findFilteredFirst(T filter, final Order... orders) { return findFilteredFirst(defaultExample(filter), orders); @@ -290,6 +307,7 @@ /** * {@inheritDoc} */ + @Override public T findFilteredFirst(T filter, List< ? extends Criterion> criteria) { ExampleTree exampleTree = defaultExample(filter); @@ -300,6 +318,7 @@ /** * {@inheritDoc} */ + @Override public T findFilteredFirst(ExampleTree exampleTree, final Order... orders) { List<T> found = getThis().findFiltered(exampleTree, 1, 0, orders); @@ -315,6 +334,7 @@ /** * {@inheritDoc} */ + @Override public T load(K key) { T result = (T) sessionFactory.getCurrentSession().load(getReferenceClass(), key); @@ -325,6 +345,7 @@ /** * @deprecated same as {@link #get(Serializable)}; */ + @Override @Deprecated public T loadIfAvailable(K key) { @@ -334,6 +355,7 @@ /** * {@inheritDoc} */ + @Override public T get(K key) { return (T) sessionFactory.getCurrentSession().get(getReferenceClass(), key); @@ -342,6 +364,7 @@ /** * {@inheritDoc} */ + @Override public K save(T obj) { return (K) sessionFactory.getCurrentSession().save(obj); @@ -350,6 +373,7 @@ /** * {@inheritDoc} */ + @Override public void update(T obj) { sessionFactory.getCurrentSession().update(obj); @@ -358,6 +382,7 @@ /** * {@inheritDoc} */ + @Override public void saveOrUpdate(T obj) { sessionFactory.getCurrentSession().saveOrUpdate(obj); @@ -366,6 +391,7 @@ /** * {@inheritDoc} */ + @Override public boolean delete(final K key) { Session s = getCurrentSession(); @@ -377,6 +403,7 @@ /** * {@inheritDoc} */ + @Override public void refresh(T obj) { getCurrentSession().refresh(obj); @@ -385,6 +412,7 @@ /** * {@inheritDoc} */ + @Override public void evict(T obj) { getCurrentSession().evict(obj); @@ -393,6 +421,7 @@ /** * {@inheritDoc} */ + @Override public T merge(final T obj) { return (T) getCurrentSession().merge(obj); @@ -401,6 +430,7 @@ /** * {@inheritDoc} */ + @Override @Deprecated public List<T> findAll(Order[] orders, List< ? extends Criterion> criteria) { @@ -410,6 +440,7 @@ /** * {@inheritDoc} */ + @Override public List<T> findFiltered(ExampleTree exampleTree, int maxResults, int page, Order... orders) { return new ExampleTreeCallback<T>(exampleTree, maxResults, page, orders).doInHibernate(getCurrentSession()); @@ -418,6 +449,7 @@ /** * {@inheritDoc} */ + @Override public List<Object> findFilteredProperties(T filter, int maxResults, int page, List<String> properties, Order... orders) { @@ -427,6 +459,7 @@ /** * {@inheritDoc} */ + @Override public List<Object> findFilteredProperties(ExampleTree exampleTree, int maxResults, int page, List<String> properties, Order... orders) { @@ -438,6 +471,7 @@ * @deprecated {@link FilterMetadata} has been deprecated in favor of {@link ExampleTree#add(String, Criterion)} and * {@link ExampleTree#overridePropertyFilter(String, String, Criterion)} {@inheritDoc} */ + @Override @Deprecated public List<T> findFiltered(T filter, Order[] customOrder, Map<String, ? extends FilterMetadata> metadata, int maxResults, int page) @@ -455,6 +489,7 @@ * @deprecated {@link FilterMetadata} has been deprecated in favor of {@link ExampleTree#add(String, Criterion)} and * {@link ExampleTree#overridePropertyFilter(String, String, Criterion)} {@inheritDoc} */ + @Override @Deprecated public List<T> findFiltered(T filter, Map<String, ? extends FilterMetadata> metadata, int maxResults, int page, Order... orders) @@ -466,6 +501,7 @@ * @deprecated {@link FilterMetadata} has been deprecated in favor of {@link ExampleTree#add(String, Criterion)} and * {@link ExampleTree#overridePropertyFilter(String, String, Criterion)} {@inheritDoc} */ + @Override @Deprecated public List<T> findFiltered(T filter, Map<String, ? extends FilterMetadata> metadata, int maxResults, int page, List< ? extends Criterion> criteria, Order... orders) @@ -486,6 +522,7 @@ * @deprecated {@link FilterMetadata} has been deprecated in favor of {@link ExampleTree#add(String, Criterion)} and * {@link ExampleTree#overridePropertyFilter(String, String, Criterion)} {@inheritDoc} */ + @Override @Deprecated public List<T> findFiltered(T filter, Order[] orders, Map<String, ? extends FilterMetadata> metadata, int maxResults, int page, List< ? extends Criterion> criteria) @@ -497,6 +534,7 @@ * @deprecated {@link FilterMetadata} has been deprecated in favor of {@link ExampleTree#add(String, Criterion)} and * {@link ExampleTree#overridePropertyFilter(String, String, Criterion)} {@inheritDoc} */ + @Override @Deprecated public List<Object> findFilteredProperties(T filter, Order[] orders, Map<String, ? extends FilterMetadata> metadata, int maxResults, int page, List< ? extends Criterion> criteria, @@ -548,6 +586,7 @@ * Return a list of <code>Order</code> object to be used for the default ordering of the collection. * @return the property name */ + @SuppressWarnings("static-method") protected Order[] getDefaultOrder() { return new Order[0]; @@ -664,6 +703,7 @@ * @deprecated this method uses the deprecated class {@link FilterMetadata}, use {@link #defaultExample(Object)} * instead */ + @SuppressWarnings("static-method") @Deprecated protected Map<String, ? extends FilterMetadata> getDefaultFilterMetadata() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gca...@us...> - 2014-05-22 09:50:43
|
Revision: 4575 http://openutils.svn.sourceforge.net/openutils/?rev=4575&view=rev Author: gcatania Date: 2014-05-22 09:50:40 +0000 (Thu, 22 May 2014) Log Message: ----------- BSHD-22 update spring jira link Modified Paths: -------------- trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java Modified: trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java =================================================================== --- trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2014-05-22 09:38:30 UTC (rev 4574) +++ trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2014-05-22 09:50:40 UTC (rev 4575) @@ -727,7 +727,7 @@ } /** - * @return This is needed as for http://opensource.atlassian.com/projects/spring/browse/SPR-2226 + * @return This is needed as for https://jira.spring.io/browse/SPR-2226 */ private HibernateDAO<T, K> getThis() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gca...@us...> - 2015-04-17 08:43:42
|
Revision: 4624 http://openutils.svn.sourceforge.net/openutils/?rev=4624&view=rev Author: gcatania Date: 2015-04-17 08:43:39 +0000 (Fri, 17 Apr 2015) Log Message: ----------- BSHD-27 regression after refactoring - distinct root entity transformer got lost Modified Paths: -------------- trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java Modified: trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java =================================================================== --- trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2015-04-13 19:46:54 UTC (rev 4623) +++ trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2015-04-17 08:43:39 UTC (rev 4624) @@ -796,7 +796,8 @@ @Override protected Criteria createCriteria(Session session) { - Criteria crit = new FilterMetadataSupport(rootEntity, filterMetadata).create(session); + Criteria crit = new FilterMetadataSupport(rootEntity, filterMetadata).create(session).setResultTransformer( + CriteriaSpecification.DISTINCT_ROOT_ENTITY); if (additionalCriteria != null) { for (Criterion c : additionalCriteria) @@ -829,19 +830,14 @@ { super(rootEntity, maxResults, page, metadata, additionalCriteria, orders); this.properties = properties; - } @Override protected Criteria createCriteria(Session session) { Criteria crit = super.createCriteria(session); - if (CollectionUtils.isEmpty(properties)) + if (CollectionUtils.isNotEmpty(properties)) { - crit.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); - } - else - { ProjectionList projectionList = Projections.projectionList(); for (String property : properties) { @@ -923,7 +919,7 @@ @Override protected Criteria createCriteria(Session session) { - return exampleTree.create(session); + return exampleTree.create(session).setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); } } @@ -948,12 +944,8 @@ protected Criteria createCriteria(Session session) { Criteria crit = super.createCriteria(session); - if (CollectionUtils.isEmpty(properties)) + if (CollectionUtils.isNotEmpty(properties)) { - crit.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); - } - else - { ProjectionList projectionList = Projections.projectionList(); for (String property : properties) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |