From: <gca...@us...> - 2012-05-21 09:16:48
|
Revision: 4048 http://openutils.svn.sourceforge.net/openutils/?rev=4048&view=rev Author: gcatania Date: 2012-05-21 09:16:37 +0000 (Mon, 21 May 2012) Log Message: ----------- Merged revisions 4045-4047 via svnmerge from https://openutils.svn.sourceforge.net/svnroot/openutils/trunk/openutils-bshd5 ........ r4045 | gcatania | 2012-05-21 10:48:00 +0200 (Mon, 21 May 2012) | 1 line BSHD-2 cleanup legacy example implementation ........ r4046 | gcatania | 2012-05-21 10:54:27 +0200 (Mon, 21 May 2012) | 1 line BSHD-2 source cleanup ........ r4047 | gcatania | 2012-05-21 11:03:05 +0200 (Mon, 21 May 2012) | 1 line dependency cleanup, updates ........ Revision Links: -------------- http://openutils.svn.sourceforge.net/openutils/?rev=4045&view=rev http://openutils.svn.sourceforge.net/openutils/?rev=4046&view=rev http://openutils.svn.sourceforge.net/openutils/?rev=4047&view=rev Modified Paths: -------------- branches/openutils-bshd5-backport/pom.xml branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java Removed Paths: ------------- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/EnhancedExample.java Property Changed: ---------------- branches/openutils-bshd5-backport/ branches/openutils-bshd5-backport/pom.xml branches/openutils-bshd5-backport/src/ Property changes on: branches/openutils-bshd5-backport ___________________________________________________________________ Modified: svnmerge-integrated - /trunk/openutils-bshd5:1-4039 + /trunk/openutils-bshd5:1-4040,4042-4047 Added: svn:mergeinfo + /trunk/openutils-bshd5:4045-4047* Modified: branches/openutils-bshd5-backport/pom.xml =================================================================== --- branches/openutils-bshd5-backport/pom.xml 2012-05-21 09:03:05 UTC (rev 4047) +++ branches/openutils-bshd5-backport/pom.xml 2012-05-21 09:16:37 UTC (rev 4048) @@ -72,17 +72,6 @@ </dependency> <dependency> <groupId>org.springframework</groupId> - <artifactId>spring-beans</artifactId> - <version>${spring.version}</version> - <exclusions> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${spring.version}</version> <exclusions> @@ -123,37 +112,6 @@ </exclusions> </dependency> <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-annotations</artifactId> - <version>${hibernate.annotations.version}</version> - <scope>test</scope> - <exclusions> - <exclusion> - <groupId>cglib</groupId> - <artifactId>cglib</artifactId> - </exclusion> - <exclusion> - <groupId>avalon-framework</groupId> - <artifactId>avalon-framework</artifactId> - </exclusion> - <exclusion> - <groupId>logkit</groupId> - <artifactId>logkit</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>commons-beanutils</groupId> - <artifactId>commons-beanutils</artifactId> - <version>1.8.0</version> - <exclusions> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2.1</version> @@ -164,7 +122,7 @@ <version>2.4</version> </dependency> <dependency> - <groupId>javassist</groupId> + <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> <version>${javassist.version}</version> </dependency> @@ -190,7 +148,7 @@ <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> - <version>5.14.6</version> + <version>6.5.2</version> <scope>test</scope> </dependency> <dependency> @@ -199,11 +157,31 @@ <version>2.2.6</version> <scope>test</scope> </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-annotations</artifactId> + <version>${hibernate.annotations.version}</version> + <scope>test</scope> + <exclusions> + <exclusion> + <groupId>cglib</groupId> + <artifactId>cglib</artifactId> + </exclusion> + <exclusion> + <groupId>avalon-framework</groupId> + <artifactId>avalon-framework</artifactId> + </exclusion> + <exclusion> + <groupId>logkit</groupId> + <artifactId>logkit</artifactId> + </exclusion> + </exclusions> + </dependency> </dependencies> <properties> <spring.version>2.5.5</spring.version> <hibernate.version>3.3.1.GA</hibernate.version> <hibernate.annotations.version>3.4.0.GA</hibernate.annotations.version> - <javassist.version>3.8.0.GA</javassist.version> + <javassist.version>3.14.0-GA</javassist.version> </properties> -</project> \ No newline at end of file +</project> Property changes on: branches/openutils-bshd5-backport/pom.xml ___________________________________________________________________ Added: svn:mergeinfo + /trunk/openutils-bshd5/pom.xml:4045-4047 Property changes on: branches/openutils-bshd5-backport/src ___________________________________________________________________ Added: svn:mergeinfo + /trunk/openutils-bshd5/src:4045-4047 Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2012-05-21 09:03:05 UTC (rev 4047) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2012-05-21 09:16:37 UTC (rev 4048) @@ -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; /** @@ -132,7 +132,6 @@ return (List<T>) getHibernateTemplate().execute(new HibernateCallback() { - @SuppressWarnings("unchecked") public List<T> doInHibernate(final Session ses) throws HibernateException { Criteria crit = ses.createCriteria(getReferenceClass()); @@ -158,7 +157,6 @@ /** * {@inheritDoc} */ - @SuppressWarnings("unchecked") public List<T> find(String query) { return getHibernateTemplate().find(query); @@ -169,7 +167,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}); } /** @@ -180,7 +178,6 @@ return (List<T>) getHibernateTemplate().execute(new HibernateCallback() { - @SuppressWarnings("unchecked") public List<T> doInHibernate(final Session ses) throws HibernateException { // hibernate 3 @@ -346,7 +343,6 @@ /** * {@inheritDoc} */ - @SuppressWarnings("unchecked") public K save(T obj) { return (K) getHibernateTemplate().save(obj); @@ -408,7 +404,6 @@ return (T) getHibernateTemplate().execute(new HibernateCallback() { - @SuppressWarnings("unchecked") public T doInHibernate(final Session ses) throws HibernateException { return (T) ses.merge(obj); @@ -561,7 +556,6 @@ return (List<Object>) getHibernateTemplate().execute(new HibernateCallback() { - @SuppressWarnings("unchecked") public List<Object> doInHibernate(final Session ses) throws HibernateException { Query q = ses.getNamedQuery(name); @@ -593,7 +587,6 @@ return (List<Object>) getHibernateTemplate().execute(new HibernateCallback() { - @SuppressWarnings("unchecked") public List<Object> doInHibernate(final Session ses) throws HibernateException { Query q = ses.getNamedQuery(name); @@ -706,7 +699,6 @@ /** * @return This is needed as for http://opensource.atlassian.com/projects/spring/browse/SPR-2226 */ - @SuppressWarnings("unchecked") private HibernateDAO<T, K> getThis() { try @@ -864,7 +856,6 @@ return crit; } - @SuppressWarnings("unchecked") public List<R> doInHibernate(Session session) throws HibernateException, SQLException { return createCriteria(session).list(); Deleted: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/EnhancedExample.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/EnhancedExample.java 2012-05-21 09:03:05 UTC (rev 4047) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/EnhancedExample.java 2012-05-21 09:16:37 UTC (rev 4048) @@ -1,337 +0,0 @@ -/** - * - * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) - * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it - * - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * You may obtain a copy of the License at - * - * http://www.gnu.org/licenses/lgpl-2.1.html - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -package it.openutils.hibernate.example; - -import java.lang.reflect.InvocationTargetException; -import java.math.BigDecimal; -import java.sql.Timestamp; -import java.util.Calendar; -import java.util.Collection; -import java.util.Collections; -import java.util.Date; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.apache.commons.beanutils.PropertyUtils; -import org.apache.commons.lang.ClassUtils; -import org.apache.commons.lang.StringUtils; -import org.hibernate.Criteria; -import org.hibernate.HibernateException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.dao.DataRetrievalFailureException; - - -/** - * @deprecated this example implementation does not take into account hibernate metadata, see BSHD-5. Use ExampleTree - * instead - * @author Fabrizio Giustina - * @version $Id: $ - */ -@Deprecated -public final class EnhancedExample -{ - - /** - * Logger. - */ - private static Logger log = LoggerFactory.getLogger(EnhancedExample.class); - - private Map<String, ? extends FilterMetadata> metadata; - - private EnhancedExample( - final Criteria crit, - final Object filter, - final Map<String, ? extends FilterMetadata> metadata) - { - this.metadata = metadata == null ? Collections.<String, FilterMetadata> emptyMap() : metadata; - fillCriteria(null, crit, filter); - } - - /** - * Fills a criteria object calling addCondition() for any non-null property or for any component in collections. - * @param crit Criteria - * @param filter javabean which will be analyzed for non-null properties - * @param metadata Map of property names - filter metadata - * @throws HibernateException exception while building the criteria - */ - public static void create(final Criteria crit, final Object filter, - final Map<String, ? extends FilterMetadata> metadata) throws HibernateException - { - new EnhancedExample(crit, filter, metadata); - } - - /** - * Adds contitions to an existing criteria or create sub-criteria for associations. - * @param crit Criteria - * @param propertyName property name in parent bean - * @param value property value - * @throws HibernateException exception while building the criteria - */ - private void addCondition(final Criteria crit, final String propertyName, final Object value, - final Object parentObject) throws HibernateException - { - - String simplePropertyName = StringUtils.contains(propertyName, ".") ? StringUtils.substringAfterLast( - propertyName, - ".") : propertyName; - - if (isSimpleType(value) || value.getClass().isEnum()) - { - - // don't filter on empty strings! - if (value instanceof String && StringUtils.isBlank((String) value)) - { - return; - } - - FilterMetadata fmd = metadata.get(propertyName); - - if (fmd == null) - { - fmd = FilterMetadata.EQUAL; - } - - fmd.createFilter(crit, simplePropertyName, value); - - } - else - { - if (containsSomething(value)) - { - // @todo handle multiple associations in lists? - // see http://opensource2.atlassian.com/projects/hibernate/browse/HHH-879 - if ((value instanceof Set< ? > || value instanceof List< ? >) && !((Collection< ? >) value).isEmpty()) - { - // collection: the new criteria has already been created, now we only need to analize content - - for (Object element : ((Collection< ? >) value)) - { - - log.debug("crit.createCriteria({})", simplePropertyName); - Criteria childrenCriteria = crit.createCriteria(simplePropertyName); - fillCriteria(propertyName, childrenCriteria, element); - } - } - else if ((value instanceof Map< ? , ? >) && !((Map< ? , ? >) value).isEmpty()) - { - FilterMetadata fmd = metadata.get(propertyName); - - if (fmd != null) - { - fmd.createFilter(crit, simplePropertyName, value); - } - else - { - log.warn( - "Maps are not handled without a FilterMetadata. Property is {} and value is {}.", - propertyName, - value); - } - } - else - { - log.debug("crit.createCriteria({})", simplePropertyName); - Criteria childrenCriteria = crit.createCriteria(simplePropertyName); - fillCriteria(propertyName, childrenCriteria, value); - } - } - } - } - - /** - * Check if the bean contains at least a valid property. - * @param bean javabean - * @return <code>true</code> if the bean contains at least a valid property - */ - @SuppressWarnings("unchecked") - private boolean containsSomething(final Object bean) - { - - if (bean == null) - { - return false; - } - if (isSimpleType(bean) || bean.getClass().isEnum()) - { - return true; - } - - if (bean instanceof Collection< ? >) - { - - Collection< ? > coll = ((Collection< ? >) bean); - if (coll.isEmpty()) - { - return false; - } - - if (containsSomething(coll.iterator().next())) - { - return true; - } - } - else if (bean instanceof Map< ? , ? >) - { - Map< ? , ? > coll = ((Map< ? , ? >) bean); - if (coll.isEmpty()) - { - return false; - } - - if (containsSomething(coll.values().iterator().next())) - { - return true; - } - } - - Map<String, Object> properties; - try - { - properties = PropertyUtils.describe(bean); - } - catch (Throwable e) - { - if (e instanceof InvocationTargetException) - { - e = ((InvocationTargetException) e).getTargetException(); - } - - log.error("Unable to build filter, PropertyUtils.describe throws an exception while analizing class " - + ClassUtils.getShortClassName(bean, "NULL"), e); - return false; - } - - for (Map.Entry<String, Object> property : properties.entrySet()) - { - - if (!PropertyUtils.isWriteable(bean, property.getKey())) - { - // skip readonly properties - continue; - } - - Object propertyValue = property.getValue(); - if (propertyValue == null) - { - continue; - } - - if (isSimpleType(propertyValue) || containsSomething(propertyValue)) - { - return true; - } - } - - return false; - } - - /** - * Fills a criteria object calling addCondition() for any non-null property or for any component in collections. - * @param crit Criteria - * @param filter javabean which will be analyzed for non-null properties - * @throws HibernateException exception while building the criteria - */ - @SuppressWarnings("unchecked") - private void fillCriteria(final String parentPropertyName, final Criteria crit, final Object filter) - throws HibernateException - { - if ((filter instanceof Set< ? > || filter instanceof List< ? >) && !((Collection< ? >) filter).isEmpty()) - { - // collection: the new criteria has already been created, now we only need to analize content - for (Object element : ((Collection< ? >) filter)) - { - fillCriteria(parentPropertyName, crit, element); - } - } - - Map<String, Object> properties; - try - { - properties = PropertyUtils.describe(filter); - } - catch (Throwable e) - { - if (e instanceof InvocationTargetException) - { - e = ((InvocationTargetException) e).getTargetException(); - } - - throw new DataRetrievalFailureException( - "Unable to build filter, PropertyUtils.describe throws an exception while analizing class " - + ClassUtils.getShortClassName(filter, "NULL") - + ":" - + e.getClass(), - e); - } - - Iterator<String> iterator = properties.keySet().iterator(); - while (iterator.hasNext()) - { - String propertyName = iterator.next(); - - Object value = properties.get(propertyName); - - // add only non-null values, ignore read-only properties - if (value != null && PropertyUtils.isWriteable(filter, propertyName)) - { - String composedPropertyName = (parentPropertyName == null) ? propertyName : parentPropertyName - + "." - + propertyName; - addCondition(crit, composedPropertyName, value, filter); - } - } - } - - /** - * Check if the given object is a simple java type - * @param object object to check - * @return <code>true</code>if the given object is a simple type - */ - private boolean isSimpleType(final Object object) - { - - Class< ? extends Object> objClass = object.getClass(); - - return objClass.isPrimitive() - || objClass.equals(Integer.class) - || objClass.equals(Long.class) - || objClass.equals(Short.class) - || objClass.equals(Boolean.class) - || objClass.equals(String.class) - || objClass.equals(Double.class) - || objClass.equals(Float.class) - || objClass.equals(Date.class) - || objClass.equals(Byte.class) - || objClass.equals(BigDecimal.class) - || objClass.equals(Timestamp.class) - || objClass.equals(Character.class) - || Calendar.class.isAssignableFrom(objClass); - } - -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gca...@us...> - 2012-06-06 22:16:25
|
Revision: 4060 http://openutils.svn.sourceforge.net/openutils/?rev=4060&view=rev Author: gcatania Date: 2012-06-06 22:16:19 +0000 (Wed, 06 Jun 2012) Log Message: ----------- Merged revisions 4059 via svnmerge from https://openutils.svn.sourceforge.net/svnroot/openutils/trunk/openutils-bshd5 ........ r4059 | gcatania | 2012-06-07 00:01:52 +0200 (Thu, 07 Jun 2012) | 1 line BSHD-14 make bshd5 into an osgi bundle ........ Revision Links: -------------- http://openutils.svn.sourceforge.net/openutils/?rev=4059&view=rev Modified Paths: -------------- branches/openutils-bshd5-backport/pom.xml Property Changed: ---------------- branches/openutils-bshd5-backport/ branches/openutils-bshd5-backport/pom.xml Property changes on: branches/openutils-bshd5-backport ___________________________________________________________________ Modified: svnmerge-integrated - /trunk/openutils-bshd5:1-4040,4042-4047 + /trunk/openutils-bshd5:1-4040,4042-4047,4059 Modified: svn:mergeinfo - /trunk/openutils-bshd5:4045-4047* + /trunk/openutils-bshd5:4045-4047*,4059 Modified: branches/openutils-bshd5-backport/pom.xml =================================================================== --- branches/openutils-bshd5-backport/pom.xml 2012-06-06 22:01:52 UTC (rev 4059) +++ branches/openutils-bshd5-backport/pom.xml 2012-06-06 22:16:19 UTC (rev 4060) @@ -7,6 +7,7 @@ <version>1.12</version> </parent> <artifactId>openutils-bshd5</artifactId> + <packaging>bundle</packaging> <name>openutils base Spring-Hibernate DAO</name> <version>2.5.0-SNAPSHOT</version> <description>Openutils base Spring-Hibernate DAO (for java 5 and more)</description> @@ -46,6 +47,12 @@ </descriptors> </configuration> </plugin> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <version>2.3.7</version> + <extensions>true</extensions> + </plugin> </plugins> </build> <dependencies> Property changes on: branches/openutils-bshd5-backport/pom.xml ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/openutils-bshd5/pom.xml:4045-4047 + /trunk/openutils-bshd5/pom.xml:4045-4047,4059 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gca...@us...> - 2012-06-06 22:25:05
|
Revision: 4061 http://openutils.svn.sourceforge.net/openutils/?rev=4061&view=rev Author: gcatania Date: 2012-06-06 22:24:59 +0000 (Wed, 06 Jun 2012) Log Message: ----------- merged revision 4060 - update versions BSHD-10 Revision Links: -------------- http://openutils.svn.sourceforge.net/openutils/?rev=4060&view=rev Modified Paths: -------------- branches/openutils-bshd5-backport/pom.xml branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java Property Changed: ---------------- branches/openutils-bshd5-backport/ branches/openutils-bshd5-backport/src/ Property changes on: branches/openutils-bshd5-backport ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/openutils-bshd5:4045-4047*,4059 + /trunk/openutils-bshd5:4045-4047*,4057,4059 Modified: branches/openutils-bshd5-backport/pom.xml =================================================================== --- branches/openutils-bshd5-backport/pom.xml 2012-06-06 22:16:19 UTC (rev 4060) +++ branches/openutils-bshd5-backport/pom.xml 2012-06-06 22:24:59 UTC (rev 4061) @@ -59,12 +59,12 @@ <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> - <version>1.6.1</version> + <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> - <version>1.6.1</version> + <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> @@ -124,9 +124,9 @@ <version>3.2.1</version> </dependency> <dependency> - <groupId>commons-lang</groupId> - <artifactId>commons-lang</artifactId> - <version>2.4</version> + <groupId>org.apache.commons</groupId> + <artifactId>commons-lang3</artifactId> + <version>3.1</version> </dependency> <dependency> <groupId>org.javassist</groupId> @@ -186,6 +186,7 @@ </dependency> </dependencies> <properties> + <slf4j.version>1.6.5</slf4j.version> <spring.version>2.5.5</spring.version> <hibernate.version>3.3.1.GA</hibernate.version> <hibernate.annotations.version>3.4.0.GA</hibernate.annotations.version> Property changes on: branches/openutils-bshd5-backport/src ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/openutils-bshd5/src:4045-4047 + /trunk/openutils-bshd5/src:4045-4047,4057 Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2012-06-06 22:16:19 UTC (rev 4060) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2012-06-06 22:24:59 UTC (rev 4061) @@ -39,7 +39,7 @@ 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.apache.commons.lang3.StringUtils; import org.hibernate.Criteria; import org.hibernate.Hibernate; import org.hibernate.HibernateException; @@ -167,7 +167,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 }); } /** Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java 2012-06-06 22:16:19 UTC (rev 4060) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java 2012-06-06 22:24:59 UTC (rev 4061) @@ -37,7 +37,7 @@ import java.util.Map; import java.util.Set; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.hibernate.Criteria; import org.hibernate.EntityMode; import org.hibernate.Hibernate; Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java 2012-06-06 22:16:19 UTC (rev 4060) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java 2012-06-06 22:24:59 UTC (rev 4061) @@ -33,7 +33,7 @@ import java.util.Set; import org.apache.commons.collections.MapUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.hibernate.Criteria; import org.hibernate.EntityMode; import org.hibernate.Hibernate; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gca...@us...> - 2012-06-22 15:59:28
|
Revision: 4072 http://openutils.svn.sourceforge.net/openutils/?rev=4072&view=rev Author: gcatania Date: 2012-06-22 15:59:20 +0000 (Fri, 22 Jun 2012) Log Message: ----------- Merged revisions 4069-4070 via svnmerge from https://openutils.svn.sourceforge.net/svnroot/openutils/trunk/openutils-bshd5 ........ r4069 | gcatania | 2012-06-22 13:17:21 +0200 (Fri, 22 Jun 2012) | 1 line BSHD-2 adding clone on test dataobjects, fix unidirectional manyToOne ........ r4070 | gcatania | 2012-06-22 17:51:52 +0200 (Fri, 22 Jun 2012) | 1 line BSHD-15 fix example support for backref properties, added unit test ........ Revision Links: -------------- http://openutils.svn.sourceforge.net/openutils/?rev=4069&view=rev http://openutils.svn.sourceforge.net/openutils/?rev=4070&view=rev Modified Paths: -------------- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOPersistenceTest.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Address.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Car.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/CarMaker.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/CarModel.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/CurrencyAmount.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Designer.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Employee.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/FullName.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Owner.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Person.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Sticker.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Title.java Property Changed: ---------------- branches/openutils-bshd5-backport/ branches/openutils-bshd5-backport/pom.xml branches/openutils-bshd5-backport/src/ Property changes on: branches/openutils-bshd5-backport ___________________________________________________________________ Modified: svnmerge-integrated - /trunk/openutils-bshd5:1-4040,4042-4047,4059,4060 + /trunk/openutils-bshd5:1-4040,4042-4056,4058-4071 Modified: svn:mergeinfo - /trunk/openutils-bshd5:4045-4047*,4057,4059 + /trunk/openutils-bshd5:4045-4047*,4057,4059,4069-4070* Property changes on: branches/openutils-bshd5-backport/pom.xml ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/openutils-bshd5/pom.xml:4045-4047,4059 + /trunk/openutils-bshd5/pom.xml:4045-4047,4059,4069-4070 Property changes on: branches/openutils-bshd5-backport/src ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/openutils-bshd5/src:4045-4047,4057 + /trunk/openutils-bshd5/src:4045-4047,4057,4069-4070 Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java 2012-06-22 15:56:05 UTC (rev 4071) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java 2012-06-22 15:59:20 UTC (rev 4072) @@ -50,6 +50,7 @@ import org.hibernate.criterion.Restrictions; import org.hibernate.engine.SessionImplementor; import org.hibernate.metadata.ClassMetadata; +import org.hibernate.property.BackrefPropertyAccessor; import org.hibernate.type.Type; @@ -68,8 +69,6 @@ private PropertySelector selector; - private DefaultPropertySelector defaultSelector = DefaultPropertySelector.NOT_NULL; - private MatchMode matchMode; private boolean isIgnoreCaseEnabled; @@ -132,8 +131,11 @@ */ public ExampleTree setPropertySelector(PropertySelector selector) { - this.selector = selector; - defaultSelector = null; + if (selector == null) + { + throw new NullPointerException("Null selector specified"); + } + this.selector = new ExcludeBackrefPropertySelector(selector); // BSHD-15 return this; } @@ -143,7 +145,7 @@ */ public ExampleTree excludeZeroes() { - return setDefaultSelector(DefaultPropertySelector.NOT_NULL_OR_ZERO); + return setPropertySelector(ExampleTreePropertySelectorSupport.NOT_NULL_OR_ZERO); } /** @@ -152,7 +154,7 @@ */ public ExampleTree excludeNone() { - return setDefaultSelector(DefaultPropertySelector.ALL); + return setPropertySelector(ExampleTreePropertySelectorSupport.ALL); } /** @@ -235,17 +237,6 @@ return add(associationPath, override); } - private static enum DefaultPropertySelector { - NOT_NULL, NOT_NULL_OR_ZERO, ALL; - } - - private ExampleTree setDefaultSelector(DefaultPropertySelector defaultSelector) - { - this.defaultSelector = defaultSelector; - selector = null; - return this; - } - private class ExampleTreeWalker implements Serializable { @@ -352,24 +343,7 @@ { ex.ignoreCase(); } - if (selector != null) - { - ex.setPropertySelector(selector); - } - else - { - switch (defaultSelector) - { - case NOT_NULL_OR_ZERO : - ex.excludeZeroes(); - break; - case ALL : - ex.excludeNone(); - break; - default : - break; - } - } + ex.setPropertySelector(selector != null ? selector : new ExcludeBackrefPropertySelector()); // BSHD-15 Set<String> excludedPropertiesForPath = excludedProperties.get(associationPath); if (excludedPropertiesForPath != null) { @@ -473,3 +447,97 @@ } } + + +/** + * support for BSHD-15 + * @author gcatania + * @version $Id$ + */ +class ExcludeBackrefPropertySelector implements PropertySelector +{ + + private static final long serialVersionUID = -2803322309158823550L; + + private final PropertySelector selector; + + public ExcludeBackrefPropertySelector(PropertySelector selector) + { + this.selector = selector; + } + + public ExcludeBackrefPropertySelector() + { + selector = ExampleTreePropertySelectorSupport.NOT_NULL; + } + + public boolean include(Object propertyValue, String propertyName, Type type) + { + if (BackrefPropertyAccessor.UNKNOWN.equals(propertyValue)) + { + return false; + } + return selector.include(propertyValue, propertyName, type); + } + +} + + +/** + * workaround to {@link Example} not exposing internal property selectors + * @author gcatania + * @version $Id$ + */ +@SuppressWarnings({"serial", "static-method"}) +class ExampleTreePropertySelectorSupport +{ + + static final PropertySelector NOT_NULL = new NotNullPropertySelector(); + + static final PropertySelector ALL = new AllPropertySelector(); + + static final PropertySelector NOT_NULL_OR_ZERO = new NotNullOrZeroPropertySelector(); + + static final class AllPropertySelector implements PropertySelector + { + + public boolean include(Object object, String propertyName, Type type) + { + return true; + } + + private Object readResolve() + { + return ALL; + } + } + + static final class NotNullPropertySelector implements PropertySelector + { + + public boolean include(Object object, String propertyName, Type type) + { + return object != null; + } + + private Object readResolve() + { + return NOT_NULL; + } + } + + static final class NotNullOrZeroPropertySelector implements PropertySelector + { + + public boolean include(Object object, String propertyName, Type type) + { + return object != null && (!(object instanceof Number) || ((Number) object).longValue() != 0); + } + + private Object readResolve() + { + return NOT_NULL_OR_ZERO; + } + } + +} \ No newline at end of file Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOPersistenceTest.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOPersistenceTest.java 2012-06-22 15:56:05 UTC (rev 4071) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOPersistenceTest.java 2012-06-22 15:59:20 UTC (rev 4072) @@ -65,7 +65,7 @@ /* * TODO tests to perform: 1) find filtered with collection with zero, one or more elements 2) find filtered with - * additional criteria 3) filter metadata support 4) find filtered with id 5) find filtered with backref + * additional criteria 3) filter metadata support */ @Autowired @@ -221,7 +221,7 @@ Designer designer = priusDesigner(prius); personDAO.save(designer); - // FIXME evicting breaks the test, there must be something wrong in the hibernate mapping configuration + // evicting breaks equals() on persistent bags // personDAO.evict(designer); // cannot use load() with entity inheritance, see https://forum.hibernate.org/viewtopic.php?p=2418875 @@ -485,6 +485,44 @@ Assert.assertEquals(alicesProperties[1], alice.getBirthDate()); } + + /** + * BSHD-15 check backref property accessors + */ + @Test + public void testOneToMany() + { + Sticker st1 = new Sticker(); + st1.setName("Warning! Baby on board!"); + st1.setHeight(20d); + st1.setWidth(10d); + Sticker st2 = new Sticker(); + st2.setName("Objects in the mirror are losing"); + st2.setHeight(5d); + st2.setWidth(10d); + + Car chucksPrius = chucksPrius(chuck(), prius(toyota())); + chucksPrius.setStickers(Collections.singletonList(st1)); + Long savedId = carDAO.save(chucksPrius); + chucksPrius = carDAO.load(savedId); + // evicting breaks equals() on persistent bags + // carDAO.evict(chucksPrius); + + Car filter = chucksPrius.clone(); + // filter.setOwner(null); + // filter.setModel(null); + filter.setStickers(null); + // filter.setRegistrationDate(null); + // filter.setMarketValue(null); + // filter.setId(null); + + Car found = carDAO.findFilteredFirst(filter); + Assert.assertEquals(found, chucksPrius); + + // found = carDAO.findFilteredFirst(chucksPrius); + // Assert.assertEquals(found, chucksPrius); + } + // @Test // public void testExampleAssociations() // { Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Address.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Address.java 2012-06-22 15:56:05 UTC (rev 4071) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Address.java 2012-06-22 15:59:20 UTC (rev 4072) @@ -36,7 +36,7 @@ * @author gcatania */ @Entity -public class Address +public class Address implements Cloneable { @Id @@ -293,4 +293,18 @@ + "]"; } + /** {@inheritDoc} */ + @Override + public Address clone() + { + try + { + return (Address) super.clone(); + } + catch (CloneNotSupportedException e) + { + throw new InternalError(e.getMessage()); + } + } + } Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Car.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Car.java 2012-06-22 15:56:05 UTC (rev 4071) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Car.java 2012-06-22 15:59:20 UTC (rev 4072) @@ -25,6 +25,7 @@ package it.openutils.hibernate.test.model; +import java.util.ArrayList; import java.util.Calendar; import java.util.List; @@ -34,6 +35,7 @@ import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; +import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; @@ -42,7 +44,7 @@ * @author gcatania */ @Entity -public class Car +public class Car implements Cloneable { @Id @@ -62,6 +64,8 @@ private CurrencyAmount marketValue; @OneToMany(cascade = CascadeType.ALL) + // join table appears problematic, using single join column instead + @JoinColumn(name = "carId", nullable = false) private List<Sticker> stickers; /** @@ -223,7 +227,7 @@ return false; } } - else if (!registrationDate.equals(other.registrationDate)) + else if (registrationDate.compareTo(other.registrationDate) != 0) { return false; } @@ -248,11 +252,9 @@ public String toString() { StringBuilder builder = new StringBuilder(); - builder - .append("Car [id=") - .append(id) - .append(", registrationDate=") - .append(registrationDate) + builder.append("Car [id=").append(id).append(", model=").append(model) + // .append(", registrationDate=") + // .append(registrationDate) .append(", marketValue=") .append(marketValue) .append(", stickers=") @@ -261,4 +263,36 @@ return builder.toString(); } + /** {@inheritDoc} */ + @Override + public Car clone() + { + Car clone; + try + { + clone = (Car) super.clone(); + } + catch (CloneNotSupportedException e) + { + throw new InternalError(e.getMessage()); + } + if (model != null) + { + clone.model = model.clone(); + } + if (registrationDate != null) + { + clone.registrationDate = (Calendar) registrationDate.clone(); + } + if (stickers != null) + { + clone.stickers = new ArrayList<Sticker>(); + for (Sticker s : stickers) + { + clone.stickers.add(s.clone()); + } + } + return clone; + } + } Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/CarMaker.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/CarMaker.java 2012-06-22 15:56:05 UTC (rev 4071) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/CarMaker.java 2012-06-22 15:59:20 UTC (rev 4072) @@ -25,6 +25,7 @@ package it.openutils.hibernate.test.model; +import java.util.ArrayList; import java.util.List; import javax.persistence.CascadeType; @@ -38,7 +39,7 @@ * @author gcatania */ @Entity -public class CarMaker +public class CarMaker implements Cloneable { @Id @@ -206,4 +207,32 @@ return builder.toString(); } + /** {@inheritDoc} */ + @Override + public CarMaker clone() + { + CarMaker clone; + try + { + clone = (CarMaker) super.clone(); + } + catch (CloneNotSupportedException e) + { + throw new InternalError(e.getMessage()); + } + if (capitalization != null) + { + clone.capitalization = capitalization.clone(); + } + if (models != null) + { + clone.models = new ArrayList<CarModel>(); + for (CarModel m : models) + { + clone.models.add(m.clone()); + } + } + return clone; + } + } Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/CarModel.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/CarModel.java 2012-06-22 15:56:05 UTC (rev 4071) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/CarModel.java 2012-06-22 15:59:20 UTC (rev 4072) @@ -38,7 +38,7 @@ * @author gcatania */ @Entity -public class CarModel +public class CarModel implements Cloneable { @Id @@ -217,4 +217,18 @@ return builder.toString(); } + /** {@inheritDoc} */ + @Override + public CarModel clone() + { + try + { + return (CarModel) super.clone(); + } + catch (CloneNotSupportedException e) + { + throw new InternalError(e.getMessage()); + } + } + } Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/CurrencyAmount.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/CurrencyAmount.java 2012-06-22 15:56:05 UTC (rev 4071) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/CurrencyAmount.java 2012-06-22 15:59:20 UTC (rev 4072) @@ -32,7 +32,7 @@ * @author gcatania */ @Embeddable -public class CurrencyAmount +public class CurrencyAmount implements Cloneable { private double amount; @@ -143,4 +143,17 @@ return new StringBuilder().append(currency).append(' ').append(amount).toString(); } + /** {@inheritDoc} */ + @Override + public CurrencyAmount clone() + { + try + { + return (CurrencyAmount) super.clone(); + } + catch (CloneNotSupportedException e) + { + throw new InternalError(e.getMessage()); + } + } } Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Designer.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Designer.java 2012-06-22 15:56:05 UTC (rev 4071) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Designer.java 2012-06-22 15:59:20 UTC (rev 4072) @@ -25,6 +25,7 @@ package it.openutils.hibernate.test.model; +import java.util.HashSet; import java.util.Set; import javax.persistence.CascadeType; @@ -130,4 +131,20 @@ return true; } + /** {@inheritDoc} */ + @Override + public Designer clone() + { + Designer clone = (Designer) super.clone(); + if (designedModels != null) + { + clone.designedModels = new HashSet<CarModel>(); + for (CarModel m : designedModels) + { + clone.designedModels.add(m.clone()); + } + } + return clone; + } + } Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Employee.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Employee.java 2012-06-22 15:56:05 UTC (rev 4071) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Employee.java 2012-06-22 15:59:20 UTC (rev 4072) @@ -190,7 +190,7 @@ return false; } } - else if (!employedSince.equals(other.employedSince)) + else if (employedSince.compareTo(other.employedSince) != 0) { return false; } @@ -230,4 +230,24 @@ return true; } + /** {@inheritDoc} */ + @Override + public Employee clone() + { + Employee clone = (Employee) super.clone(); + if (employer != null) + { + clone.employer = employer.clone(); + } + if (grossAnnualSalary != null) + { + clone.grossAnnualSalary = grossAnnualSalary.clone(); + } + if (employedSince != null) + { + clone.employedSince = (Calendar) employedSince.clone(); + } + return clone; + } + } Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/FullName.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/FullName.java 2012-06-22 15:56:05 UTC (rev 4071) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/FullName.java 2012-06-22 15:59:20 UTC (rev 4072) @@ -33,7 +33,7 @@ * @author gcatania */ @Embeddable -public class FullName +public class FullName implements Cloneable { private Title title; @@ -173,4 +173,18 @@ return "FullName [familyName=" + familyName + ", givenName=" + givenName + ", title=" + title + "]"; } + /** {@inheritDoc} */ + @Override + public FullName clone() + { + try + { + return (FullName) super.clone(); + } + catch (CloneNotSupportedException e) + { + throw new InternalError(e.getMessage()); + } + } + } Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Owner.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Owner.java 2012-06-22 15:56:05 UTC (rev 4071) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Owner.java 2012-06-22 15:59:20 UTC (rev 4072) @@ -25,6 +25,7 @@ package it.openutils.hibernate.test.model; +import java.util.HashSet; import java.util.Set; import javax.persistence.CascadeType; @@ -125,4 +126,24 @@ return true; } + /** {@inheritDoc} */ + @Override + public Owner clone() + { + Owner clone = (Owner) super.clone(); + if (cars != null) + { + clone.cars = new HashSet<Car>(); + for (Car car : cars) + { + clone.cars.add(car.clone()); + } + } + if (totalValueOfCars != null) + { + clone.totalValueOfCars = totalValueOfCars.clone(); + } + return clone; + } + } Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Person.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Person.java 2012-06-22 15:56:05 UTC (rev 4071) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Person.java 2012-06-22 15:59:20 UTC (rev 4072) @@ -47,7 +47,7 @@ @Entity @Inheritance(strategy = InheritanceType.JOINED) @DiscriminatorColumn(name = "personType") -public class Person +public class Person implements Cloneable { @Id @@ -188,7 +188,7 @@ return false; } } - else if (!birthDate.equals(other.birthDate)) + else if (birthDate.compareTo(other.birthDate) != 0) { return false; } @@ -257,4 +257,37 @@ return builder.toString(); } + /** {@inheritDoc} */ + @Override + public Person clone() + { + Person clone; + try + { + clone = (Person) super.clone(); + } + catch (CloneNotSupportedException e) + { + throw new InternalError(e.getMessage()); + } + + if (name != null) + { + clone.name = name.clone(); + } + if (birthDate != null) + { + clone.birthDate = (Calendar) birthDate.clone(); + } + if (currentAddress != null) + { + clone.currentAddress = currentAddress.clone(); + } + if (fiscalAddress != null) + { + clone.fiscalAddress = fiscalAddress.clone(); + } + return clone; + } + } Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Sticker.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Sticker.java 2012-06-22 15:56:05 UTC (rev 4071) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Sticker.java 2012-06-22 15:59:20 UTC (rev 4072) @@ -35,7 +35,7 @@ * @author gcatania */ @Entity -public class Sticker +public class Sticker implements Cloneable { @Id @@ -216,4 +216,17 @@ return builder.toString(); } + /** {@inheritDoc} */ + @Override + public Sticker clone() + { + try + { + return (Sticker) super.clone(); + } + catch (CloneNotSupportedException e) + { + throw new InternalError(e.getMessage()); + } + } } Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Title.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Title.java 2012-06-22 15:56:05 UTC (rev 4071) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Title.java 2012-06-22 15:59:20 UTC (rev 4072) @@ -28,9 +28,8 @@ /** * @author gcatania */ -public enum Title { - +public enum Title +{ /** male, female titles */ MR, MRS - } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gca...@us...> - 2012-06-29 13:17:47
|
Revision: 4074 http://openutils.svn.sourceforge.net/openutils/?rev=4074&view=rev Author: gcatania Date: 2012-06-29 13:17:38 +0000 (Fri, 29 Jun 2012) Log Message: ----------- Merged revisions 4073 via svnmerge from https://openutils.svn.sourceforge.net/svnroot/openutils/trunk/openutils-bshd5 ........ r4073 | gcatania | 2012-06-29 15:14:53 +0200 (Fri, 29 Jun 2012) | 1 line BSHD-15 fixed for FilterMetadataSupport, readability improvement ........ Revision Links: -------------- http://openutils.svn.sourceforge.net/openutils/?rev=4073&view=rev Modified Paths: -------------- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java Property Changed: ---------------- branches/openutils-bshd5-backport/ branches/openutils-bshd5-backport/pom.xml branches/openutils-bshd5-backport/src/ Property changes on: branches/openutils-bshd5-backport ___________________________________________________________________ Modified: svnmerge-integrated - /trunk/openutils-bshd5:1-4040,4042-4056,4058-4071 + /trunk/openutils-bshd5:1-4040,4042-4056,4058-4073 Modified: svn:mergeinfo - /trunk/openutils-bshd5:4045-4047*,4057,4059,4069-4070* + /trunk/openutils-bshd5:4045-4047*,4057,4059,4069-4070*,4073* Property changes on: branches/openutils-bshd5-backport/pom.xml ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/openutils-bshd5/pom.xml:4045-4047,4059,4069-4070 + /trunk/openutils-bshd5/pom.xml:4045-4047,4059,4069-4070,4073 Property changes on: branches/openutils-bshd5-backport/src ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/openutils-bshd5/src:4045-4047,4057,4069-4070 + /trunk/openutils-bshd5/src:4045-4047,4057,4069-4070,4073 Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java 2012-06-29 13:14:53 UTC (rev 4073) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java 2012-06-29 13:17:38 UTC (rev 4074) @@ -67,7 +67,7 @@ private Character escapeCharacter; - private PropertySelector selector; + private PropertySelector selector = new ExcludeBackrefPropertySelector(); // BSHD-15 private MatchMode matchMode; @@ -343,7 +343,7 @@ { ex.ignoreCase(); } - ex.setPropertySelector(selector != null ? selector : new ExcludeBackrefPropertySelector()); // BSHD-15 + ex.setPropertySelector(selector); Set<String> excludedPropertiesForPath = excludedProperties.get(associationPath); if (excludedPropertiesForPath != null) { Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java 2012-06-29 13:14:53 UTC (rev 4073) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java 2012-06-29 13:17:38 UTC (rev 4074) @@ -193,6 +193,7 @@ private Example example(Object entity, Set<String> propertiesToExclude) { Example ex = Example.create(entity); + ex.setPropertySelector(new ExcludeBackrefPropertySelector()); // BSHD-15 for (String propertyName : propertiesToExclude) { // skip properties handled by filterMetadata 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:11:56
|
Revision: 4079 http://openutils.svn.sourceforge.net/openutils/?rev=4079&view=rev Author: gcatania Date: 2012-06-29 16:11:44 +0000 (Fri, 29 Jun 2012) Log Message: ----------- Merged revisions 4075-4078 via svnmerge from https://openutils.svn.sourceforge.net/svnroot/openutils/trunk/openutils-bshd5 ........ r4075 | gcatania | 2012-06-29 16:26:07 +0200 (Fri, 29 Jun 2012) | 1 line cleanup unit tests ........ r4076 | gcatania | 2012-06-29 17:10:22 +0200 (Fri, 29 Jun 2012) | 1 line BSHD-15 source code refactor and cleanup ........ r4077 | gcatania | 2012-06-29 18:03:05 +0200 (Fri, 29 Jun 2012) | 1 line BSHD-2 adding tests for filter metadata, refactoring ........ r4078 | gcatania | 2012-06-29 18:05:56 +0200 (Fri, 29 Jun 2012) | 1 line licenses ........ Revision Links: -------------- http://openutils.svn.sourceforge.net/openutils/?rev=4075&view=rev http://openutils.svn.sourceforge.net/openutils/?rev=4076&view=rev http://openutils.svn.sourceforge.net/openutils/?rev=4077&view=rev http://openutils.svn.sourceforge.net/openutils/?rev=4078&view=rev Modified Paths: -------------- branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOPersistenceTest.java Added Paths: ----------- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTreeUtils.java branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/selectors/ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/selectors/ExcludeBackrefPropertySelector.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/EntityBuilder.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOFilterMetadataTest.java Removed Paths: ------------- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/selectors/ExcludeBackrefPropertySelector.java Property Changed: ---------------- branches/openutils-bshd5-backport/ branches/openutils-bshd5-backport/pom.xml branches/openutils-bshd5-backport/src/ Property changes on: branches/openutils-bshd5-backport ___________________________________________________________________ Modified: svnmerge-integrated - /trunk/openutils-bshd5:1-4040,4042-4056,4058-4073 + /trunk/openutils-bshd5:1-4040,4042-4056,4058-4078 Modified: svn:mergeinfo - /trunk/openutils-bshd5:4045-4047*,4057,4059,4069-4070*,4073* + /trunk/openutils-bshd5:4045-4047*,4057,4059,4069-4070*,4073*,4075-4078* Property changes on: branches/openutils-bshd5-backport/pom.xml ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/openutils-bshd5/pom.xml:4045-4047,4059,4069-4070,4073 + /trunk/openutils-bshd5/pom.xml:4045-4047,4059,4069-4070,4073,4075-4078 Property changes on: branches/openutils-bshd5-backport/src ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/openutils-bshd5/src:4045-4047,4057,4069-4070,4073 + /trunk/openutils-bshd5/src:4045-4047,4057,4069-4070,4073,4075-4078 Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2012-06-29 16:05:56 UTC (rev 4078) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2012-06-29 16:11:44 UTC (rev 4079) @@ -38,7 +38,6 @@ 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; @@ -167,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}); } /** @@ -724,7 +723,7 @@ * @author gcatania */ @SuppressWarnings("deprecation") - private class LegacySupportCallback<R> extends ExampleTreeCallback<R> + private class LegacySupportCallback<R> extends BaseCallback<R> { private final T rootEntity; @@ -741,7 +740,7 @@ List< ? extends Criterion> additionalCriteria, Order... orders) { - super(new ExampleTree(rootEntity), maxResults, page, orders); + super(maxResults, page, orders); this.rootEntity = rootEntity; this.filterMetadata = metadata; this.additionalCriteria = additionalCriteria; @@ -750,11 +749,7 @@ @Override protected Criteria createCriteria(Session session) { - Criteria crit = super.createCriteria(session); - if (MapUtils.isNotEmpty(filterMetadata)) - { - new FilterMetadataSupport(rootEntity, filterMetadata).appendTo(crit, session); - } + Criteria crit = new FilterMetadataSupport(rootEntity, filterMetadata).create(session); if (additionalCriteria != null) { for (Criterion c : additionalCriteria) @@ -794,8 +789,12 @@ protected Criteria createCriteria(Session session) { Criteria crit = super.createCriteria(session); - if (!CollectionUtils.isEmpty(properties)) + if (CollectionUtils.isEmpty(properties)) { + crit.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); + } + else + { ProjectionList projectionList = Projections.projectionList(); for (String property : properties) { @@ -814,7 +813,7 @@ * @author gcatania * @param R the result class */ -class ExampleTreeCallback<R> implements HibernateCallback +abstract class BaseCallback<R> implements HibernateCallback { private final Order[] orders; @@ -823,26 +822,23 @@ private final int page; - private final ExampleTree exampleTree; - - protected ExampleTreeCallback(ExampleTree exampleTree, int maxResults, int page, Order... orders) + protected BaseCallback(int maxResults, int page, Order... orders) { - this.exampleTree = exampleTree; this.maxResults = maxResults; this.page = page; this.orders = orders; } /** - * internal method that creates the query criteria. Subclasses may override but should call {@code super()} + * internal method that creates the query criteria. * @param session the hibernate session * @return the hibernate criteria */ - protected Criteria createCriteria(Session session) + protected abstract Criteria createCriteria(Session session); + + public final List<R> doInHibernate(Session session) throws HibernateException, SQLException { - Criteria crit = exampleTree.create(session); - - crit.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); + Criteria crit = createCriteria(session); crit.setMaxResults(maxResults); crit.setFirstResult(maxResults * page); if (orders != null) @@ -852,13 +848,35 @@ crit.addOrder(o); } } + return crit.list(); + } +} - return crit; + +/** + * @author gcatania + * @param R the result class + */ +class ExampleTreeCallback<R> extends BaseCallback<R> +{ + + private final ExampleTree exampleTree; + + protected ExampleTreeCallback(ExampleTree exampleTree, int maxResults, int page, Order... orders) + { + super(maxResults, page, orders); + this.exampleTree = exampleTree; } - public List<R> doInHibernate(Session session) throws HibernateException, SQLException + /** + * internal method that creates the query criteria. Subclasses may override. + * @param session the hibernate session + * @return the hibernate criteria + */ + @Override + protected Criteria createCriteria(Session session) { - return createCriteria(session).list(); + return exampleTree.create(session); } } @@ -868,9 +886,12 @@ private final List<String> properties; - protected ExampleTreePropertiesCallback(ExampleTree exampleTree, int maxResults, int page, - - List<String> properties, Order... orders) + protected ExampleTreePropertiesCallback( + ExampleTree exampleTree, + int maxResults, + int page, + List<String> properties, + Order... orders) { super(exampleTree, maxResults, page, orders); this.properties = properties; @@ -880,8 +901,12 @@ protected Criteria createCriteria(Session session) { Criteria crit = super.createCriteria(session); - if (!CollectionUtils.isEmpty(properties)) + if (CollectionUtils.isEmpty(properties)) { + crit.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); + } + else + { ProjectionList projectionList = Projections.projectionList(); for (String property : properties) { Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java 2012-06-29 16:05:56 UTC (rev 4078) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java 2012-06-29 16:11:44 UTC (rev 4079) @@ -25,11 +25,10 @@ package it.openutils.hibernate.example; +import it.openutils.hibernate.selectors.ExcludeBackrefPropertySelector; + import java.io.Serializable; -import java.lang.reflect.Array; import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; @@ -37,7 +36,6 @@ import java.util.Map; import java.util.Set; -import org.apache.commons.lang3.StringUtils; import org.hibernate.Criteria; import org.hibernate.EntityMode; import org.hibernate.Hibernate; @@ -50,7 +48,6 @@ import org.hibernate.criterion.Restrictions; import org.hibernate.engine.SessionImplementor; import org.hibernate.metadata.ClassMetadata; -import org.hibernate.property.BackrefPropertyAccessor; import org.hibernate.type.Type; @@ -67,7 +64,7 @@ private Character escapeCharacter; - private PropertySelector selector = new ExcludeBackrefPropertySelector(); // BSHD-15 + private PropertySelector selector = new ExcludeBackrefPropertySelector(ExampleTreePropertySelectorSupport.NOT_NULL); // BSHD-15 private MatchMode matchMode; @@ -260,7 +257,7 @@ private void createSubExamples(Criteria crit, Object entity, String[] walkedProperties) { - String associationPath = getAssociationPath(walkedProperties); + String associationPath = ExampleTreeUtils.getPath(walkedProperties); crit.add(example(entity, associationPath)); for (Criterion c : getAdditionalConditions(associationPath)) { @@ -281,7 +278,7 @@ continue; } String propertyName = names[i]; - if (alreadyWalked(walkedProperties, propertyName)) + if (ExampleTreeUtils.alreadyWalked(walkedProperties, propertyName)) { continue; } @@ -289,7 +286,7 @@ Object propertyValue = classMetadata.getPropertyValue(entity, propertyName, entityMode); if (propertyType.isCollectionType()) { - propertyValue = getValueFromCollection(propertyValue); + propertyValue = ExampleTreeUtils.getValueFromCollection(propertyValue); } if (propertyValue == null) { @@ -298,7 +295,7 @@ } Criteria subCrit = crit.createCriteria(propertyName); - String[] subProperties = append(walkedProperties, propertyName); + String[] subProperties = ExampleTreeUtils.append(walkedProperties, propertyName); createSubExamples(subCrit, propertyValue, subProperties); } } @@ -323,11 +320,6 @@ } } - private String getAssociationPath(String[] walkedProperties) - { - return walkedProperties.length > 0 ? StringUtils.join(walkedProperties, '.') : StringUtils.EMPTY; - } - private Example example(Object entity, String associationPath) { Example ex = Example.create(entity); @@ -365,128 +357,13 @@ return result; } - /** - * check the property with the input name was already walked in the input path - * @param path the current path - * @param propertyName the property name about to be walked - * @return true if the property with the input name was already walked in the input path - */ - private boolean alreadyWalked(String[] walkedProperties, String propertyName) - { - if (walkedProperties.length <= 2) - { - return false; - } - String parent = walkedProperties[walkedProperties.length - 1]; - boolean lastWasChild = false; - for (int i = walkedProperties.length - 2; i > 0; i--) - { - String currPropertyName = walkedProperties[i]; - if (currPropertyName.equals(propertyName)) - { - lastWasChild = true; - continue; - } - if (lastWasChild) - { - if (currPropertyName.equals(parent)) - { - return true; - } - else - { - lastWasChild = false; - } - } - } - return false; - } - - // see http://opensource2.atlassian.com/projects/hibernate/browse/HHH-879 - private Object getValueFromCollection(Object collectionValue) - { - if (collectionValue != null) - { - if (collectionValue instanceof Collection< ? >) - { - Collection< ? > coll = (Collection< ? >) collectionValue; - int size = coll.size(); - if (size == 1) - { - return coll.iterator().next(); - } - if (size > 1) - { - throw new IllegalArgumentException("More than one element in filter collection is unsupported."); - } - } - Class< ? extends Object> clazz = collectionValue.getClass(); - if (clazz.isArray()) - { - int length = Array.getLength(collectionValue); - if (length == 1) - { - return Array.get(collectionValue, 0); - } - if (length > 1) - { - throw new IllegalArgumentException("More than one element in filter array is unsupported."); - } - } - // TODO other cases? - } - return null; - } - - private String[] append(String[] propertyNames, String propertyName) - { - String[] result = Arrays.copyOf(propertyNames, propertyNames.length + 1); - result[propertyNames.length] = propertyName; - return result; - } } - } /** - * support for BSHD-15 - * @author gcatania - * @version $Id$ - */ -class ExcludeBackrefPropertySelector implements PropertySelector -{ - - private static final long serialVersionUID = -2803322309158823550L; - - private final PropertySelector selector; - - public ExcludeBackrefPropertySelector(PropertySelector selector) - { - this.selector = selector; - } - - public ExcludeBackrefPropertySelector() - { - selector = ExampleTreePropertySelectorSupport.NOT_NULL; - } - - public boolean include(Object propertyValue, String propertyName, Type type) - { - if (BackrefPropertyAccessor.UNKNOWN.equals(propertyValue)) - { - return false; - } - return selector.include(propertyValue, propertyName, type); - } - -} - - -/** * workaround to {@link Example} not exposing internal property selectors * @author gcatania - * @version $Id$ */ @SuppressWarnings({"serial", "static-method"}) class ExampleTreePropertySelectorSupport Copied: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTreeUtils.java (from rev 4078, trunk/openutils-bshd5/src/main/java/it/openutils/hibernate/example/ExampleTreeUtils.java) =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTreeUtils.java (rev 0) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTreeUtils.java 2012-06-29 16:11:44 UTC (rev 4079) @@ -0,0 +1,147 @@ +/** + * + * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) + * + * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * You may obtain a copy of the License at + * + * http://www.gnu.org/licenses/lgpl-2.1.html + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +package it.openutils.hibernate.example; + +import java.lang.reflect.Array; +import java.util.Arrays; +import java.util.Collection; + +import org.apache.commons.lang3.StringUtils; + + +/** + * @author gcatania + * @version $Id$ + */ +final class ExampleTreeUtils +{ + + private ExampleTreeUtils() + { + } + + /** + * check the property with the input name was already walked in the input path + * @param path the current path + * @param propertyName the property name about to be walked + * @return true if the property with the input name was already walked in the input path + */ + public static boolean alreadyWalked(String[] walkedProperties, String propertyName) + { + if (walkedProperties.length <= 2) + { + return false; + } + String parent = walkedProperties[walkedProperties.length - 1]; + boolean lastWasChild = false; + for (int i = walkedProperties.length - 2; i > 0; i--) + { + String currPropertyName = walkedProperties[i]; + if (currPropertyName.equals(propertyName)) + { + lastWasChild = true; + continue; + } + if (lastWasChild) + { + if (currPropertyName.equals(parent)) + { + return true; + } + else + { + lastWasChild = false; + } + } + } + return false; + } + + /** + * retrieves a value from a collection + * @param collectionValue the collection + * @return a value + * @see http://opensource2.atlassian.com/projects/hibernate/browse/HHH-879 + * @throws IllegalArgumentException if the input collection contains more than one value + */ + public static Object getValueFromCollection(Object collectionValue) throws IllegalArgumentException + { + if (collectionValue != null) + { + if (collectionValue instanceof Collection< ? >) + { + Collection< ? > coll = (Collection< ? >) collectionValue; + int size = coll.size(); + if (size == 1) + { + return coll.iterator().next(); + } + if (size > 1) + { + throw new IllegalArgumentException("More than one element in filter collection is unsupported."); + } + } + Class< ? extends Object> clazz = collectionValue.getClass(); + if (clazz.isArray()) + { + int length = Array.getLength(collectionValue); + if (length == 1) + { + return Array.get(collectionValue, 0); + } + if (length > 1) + { + throw new IllegalArgumentException("More than one element in filter array is unsupported."); + } + } + // TODO other cases? + } + return null; + } + + /** + * @param strings an array of strings + * @param s the string to append + * @return a new array containing the input string array plus the input string at the end + */ + public static String[] append(String[] strings, String s) + { + String[] result = Arrays.copyOf(strings, strings.length + 1); + result[strings.length] = s; + return result; + } + + /** + * constructs the association path from an array of property names + * @param propertyNames the walked properties + * @return the association path + */ + public static String getPath(String[] propertyNames) + { + return propertyNames.length > 0 ? StringUtils.join(propertyNames, '.') : StringUtils.EMPTY; + } + +} Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java 2012-06-29 16:05:56 UTC (rev 4078) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java 2012-06-29 16:11:44 UTC (rev 4079) @@ -25,15 +25,13 @@ package it.openutils.hibernate.example; -import java.lang.reflect.Array; -import java.util.Arrays; -import java.util.Collection; +import it.openutils.hibernate.selectors.ExcludeBackrefPropertySelector; + import java.util.HashMap; import java.util.Map; import java.util.Set; import org.apache.commons.collections.MapUtils; -import org.apache.commons.lang3.StringUtils; import org.hibernate.Criteria; import org.hibernate.EntityMode; import org.hibernate.Hibernate; @@ -117,7 +115,7 @@ private void createSubExamples(Criteria crit, Object entity, String[] walkedProperties) { - String path = getPath(walkedProperties); + String path = ExampleTreeUtils.getPath(walkedProperties); Map<String, FilterMetadata> currFilterMetadata = getFilterMetadata(path); crit.add(example(entity, currFilterMetadata.keySet())); ClassMetadata classMetadata = sessionFactory.getClassMetadata(Hibernate.getClass(entity)); @@ -126,7 +124,7 @@ for (int i = 0; i < types.length; i++) { String propertyName = names[i]; - if (alreadyWalked(walkedProperties, propertyName)) + if (ExampleTreeUtils.alreadyWalked(walkedProperties, propertyName)) { continue; } @@ -147,7 +145,7 @@ if (propertyType.isCollectionType()) { - propertyValue = getValueFromCollection(propertyValue); + propertyValue = ExampleTreeUtils.getValueFromCollection(propertyValue); } if (propertyValue == null) { @@ -156,7 +154,7 @@ } Criteria subCrit = crit.createCriteria(propertyName); - String[] subProperties = append(walkedProperties, propertyName); + String[] subProperties = ExampleTreeUtils.append(walkedProperties, propertyName); createSubExamples(subCrit, propertyValue, subProperties); } } @@ -174,10 +172,12 @@ { continue; } - String leftover = key.substring(path.length() + 1); - // skip subproperties + // need to take into account leading dot for subproperties + int trimLength = path.isEmpty() ? 0 : path.length() + 1; + String leftover = key.substring(trimLength); if (leftover.contains(".")) { + // skip subproperties continue; } result.put(leftover, filterMetadata.get(key)); @@ -185,15 +185,10 @@ return result; } - private String getPath(String[] walkedProperties) - { - return walkedProperties.length > 0 ? StringUtils.join(walkedProperties, '.') : StringUtils.EMPTY; - } - private Example example(Object entity, Set<String> propertiesToExclude) { Example ex = Example.create(entity); - ex.setPropertySelector(new ExcludeBackrefPropertySelector()); // BSHD-15 + ex.setPropertySelector(new ExcludeBackrefPropertySelector(ExampleTreePropertySelectorSupport.NOT_NULL)); // BSHD-15 for (String propertyName : propertiesToExclude) { // skip properties handled by filterMetadata @@ -202,84 +197,6 @@ return ex; } - /** - * check the property with the input name was already walked in the input path - * @param path the current path - * @param propertyName the property name about to be walked - * @return true if the property with the input name was already walked in the input path - */ - private boolean alreadyWalked(String[] walkedProperties, String propertyName) - { - if (walkedProperties.length <= 2) - { - return false; - } - String parent = walkedProperties[walkedProperties.length - 1]; - boolean lastWasChild = false; - for (int i = walkedProperties.length - 2; i > 0; i--) - { - String currPropertyName = walkedProperties[i]; - if (currPropertyName.equals(propertyName)) - { - lastWasChild = true; - continue; - } - if (lastWasChild) - { - if (currPropertyName.equals(parent)) - { - return true; - } - else - { - lastWasChild = false; - } - } - } - return false; - } - - private Object getValueFromCollection(Object collectionValue) - { - if (collectionValue != null) - { - if (collectionValue instanceof Collection< ? >) - { - Collection< ? > coll = (Collection< ? >) collectionValue; - int size = coll.size(); - if (size == 1) - { - return coll.iterator().next(); - } - if (size > 1) - { - throw new IllegalArgumentException("More than one element in filter collection is unsupported."); - } - } - Class< ? extends Object> clazz = collectionValue.getClass(); - if (clazz.isArray()) - { - int length = Array.getLength(collectionValue); - if (length == 1) - { - return Array.get(collectionValue, 0); - } - if (length > 1) - { - throw new IllegalArgumentException("More than one element in filter array is unsupported."); - } - } - // TODO other cases? - } - return null; - } - - private String[] append(String[] propertyNames, String propertyName) - { - String[] result = Arrays.copyOf(propertyNames, propertyNames.length + 1); - result[propertyNames.length] = propertyName; - return result; - } } } Deleted: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/selectors/ExcludeBackrefPropertySelector.java =================================================================== --- trunk/openutils-bshd5/src/main/java/it/openutils/hibernate/selectors/ExcludeBackrefPropertySelector.java 2012-06-29 16:05:56 UTC (rev 4078) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/selectors/ExcludeBackrefPropertySelector.java 2012-06-29 16:11:44 UTC (rev 4079) @@ -1,66 +0,0 @@ -/** - * - * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) - * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it - * - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * You may obtain a copy of the License at - * - * http://www.gnu.org/licenses/lgpl-2.1.html - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -package it.openutils.hibernate.selectors; - -import java.io.Serializable; - -import org.hibernate.criterion.Example.PropertySelector; -import org.hibernate.property.BackrefPropertyAccessor; -import org.hibernate.type.Type; - - -/** - * utility selector to avoid class cast exceptions on {@link BackrefPropertyAccessor.UNKNOWN} - * @see BSHD-15 - * @author gcatania - * @version $Id$ - */ -public class ExcludeBackrefPropertySelector implements PropertySelector, Serializable -{ - - private static final long serialVersionUID = -2803322309158823550L; - - private final PropertySelector selector; - - public ExcludeBackrefPropertySelector(PropertySelector selector) - { - if (selector == null) - { - throw new NullPointerException("Null selector."); - } - this.selector = selector; - } - - public boolean include(Object propertyValue, String propertyName, Type type) - { - if (BackrefPropertyAccessor.UNKNOWN.equals(propertyValue)) - { - return false; - } - return selector.include(propertyValue, propertyName, type); - } - -} Copied: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/selectors/ExcludeBackrefPropertySelector.java (from rev 4078, trunk/openutils-bshd5/src/main/java/it/openutils/hibernate/selectors/ExcludeBackrefPropertySelector.java) =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/selectors/ExcludeBackrefPropertySelector.java (rev 0) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/selectors/ExcludeBackrefPropertySelector.java 2012-06-29 16:11:44 UTC (rev 4079) @@ -0,0 +1,66 @@ +/** + * + * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) + * + * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * You may obtain a copy of the License at + * + * http://www.gnu.org/licenses/lgpl-2.1.html + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +package it.openutils.hibernate.selectors; + +import java.io.Serializable; + +import org.hibernate.criterion.Example.PropertySelector; +import org.hibernate.property.BackrefPropertyAccessor; +import org.hibernate.type.Type; + + +/** + * utility selector to avoid class cast exceptions on {@link BackrefPropertyAccessor.UNKNOWN} + * @see BSHD-15 + * @author gcatania + * @version $Id$ + */ +public class ExcludeBackrefPropertySelector implements PropertySelector, Serializable +{ + + private static final long serialVersionUID = -2803322309158823550L; + + private final PropertySelector selector; + + public ExcludeBackrefPropertySelector(PropertySelector selector) + { + if (selector == null) + { + throw new NullPointerException("Null selector."); + } + this.selector = selector; + } + + public boolean include(Object propertyValue, String propertyName, Type type) + { + if (BackrefPropertyAccessor.UNKNOWN.equals(propertyValue)) + { + return false; + } + return selector.include(propertyValue, propertyName, type); + } + +} Copied: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/EntityBuilder.java (from rev 4078, trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/EntityBuilder.java) =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/EntityBuilder.java (rev 0) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/EntityBuilder.java 2012-06-29 16:11:44 UTC (rev 4079) @@ -0,0 +1,180 @@ +/** + * + * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) + * + * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * You may obtain a copy of the License at + * + * http://www.gnu.org/licenses/lgpl-2.1.html + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +package it.openutils.hibernate.test; + +import it.openutils.hibernate.test.model.Address; +import it.openutils.hibernate.test.model.Car; +import it.openutils.hibernate.test.model.CarMaker; +import it.openutils.hibernate.test.model.CarModel; +import it.openutils.hibernate.test.model.CurrencyAmount; +import it.openutils.hibernate.test.model.Designer; +import it.openutils.hibernate.test.model.FullName; +import it.openutils.hibernate.test.model.Owner; +import it.openutils.hibernate.test.model.Person; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Collections; +import java.util.GregorianCalendar; +import java.util.List; + + +/** + * @author gcatania + * @version $Id$ + */ +public final class EntityBuilder +{ + + private EntityBuilder() + { + } + + public static Person alice() + { + FullName fullName = new FullName("Alice", "McBeal"); + Calendar birthDate = new GregorianCalendar(1970, Calendar.MARCH, 7); + Address address = new Address("Long road", 15, "Smalltown", "MI", 14352); + Person p = new Person(); + p.setName(fullName); + p.setBirthDate(birthDate); + p.setFiscalAddress(address); + p.setCurrentAddress(address); + return p; + } + + public static Owner bob() + { + FullName fullName = new FullName("Bob", "Kelso"); + Calendar birthDate = new GregorianCalendar(1950, Calendar.MARCH, 7); + Address address = new Address("Sacred Heart Lane", 3, "Smalltown", "CA", 11243); + Owner o = new Owner(); + o.setName(fullName); + o.setBirthDate(birthDate); + o.setFiscalAddress(address); + o.setCurrentAddress(address); + return o; + } + + public static Owner chuck() + { + FullName fullName = new FullName("Chuck", "Palahniuk"); + Calendar birthDate = new GregorianCalendar(1962, Calendar.FEBRUARY, 21); + Address address = new Address("Awesome Street", 2, "Pasco", "WA", 13121); + Owner p = new Owner(); + p.setName(fullName); + p.setBirthDate(birthDate); + p.setFiscalAddress(address); + p.setCurrentAddress(address); + return p; + } + + public static CarMaker toyota() + { + CarMaker toyota = new CarMaker(); + toyota.setCode("TYT"); + toyota.setName("Toyota"); + toyota.setCapitalization(new CurrencyAmount(12000, "YEN")); + return toyota; + } + + public static CarMaker fiat() + { + CarMaker fiat = new CarMaker(); + fiat.setCode("FIA"); + fiat.setName("Fabbrica Italiana Automobili Torino"); + fiat.setCapitalization(new CurrencyAmount(80000, "EUR")); + return fiat; + } + + public static CarModel prius(CarMaker toyota) + { + CarModel prius = new CarModel(); + prius.setName("Prius"); + prius.setMake(toyota); + prius.setYear(Integer.valueOf(2008)); + + List<CarModel> toyotaModels = toyota.getModels(); + if (toyotaModels == null) + { + toyotaModels = new ArrayList<CarModel>(); + } + toyotaModels.add(prius); + toyota.setModels(toyotaModels); + return prius; + } + + public static CarModel prius() + { + return prius(toyota()); + } + + public static Designer priusDesigner(CarModel prius) + { + FullName fullName = new FullName("Ken", "Shiro"); + Calendar birthDate = new GregorianCalendar(1981, Calendar.OCTOBER, 16); + Address address = new Address("Khan avenue", 6, "Nagato", "TK", 99867); + Designer p = new Designer(); + p.setName(fullName); + p.setBirthDate(birthDate); + p.setFiscalAddress(address); + p.setCurrentAddress(address); + p.setDepartment("design"); + p.setEmployer(prius.getMake()); + p.setDesignedModels(Collections.singleton(prius)); + p.setGrossAnnualSalary(new CurrencyAmount(60000, "YEN")); + p.setHipsterFactor(97); + return p; + } + + public static Car bobsPrius(Owner bob, CarModel prius) + { + Car bobsPrius = new Car(); + bobsPrius.setModel(prius); + bobsPrius.setRegistrationDate(new GregorianCalendar(2010, Calendar.OCTOBER, 28)); + bobsPrius.setMarketValue(new CurrencyAmount(1700, "USD")); + bobsPrius.setOwner(bob); + bob.setCars(Collections.singleton(bobsPrius)); + return bobsPrius; + } + + public static Car bobsPrius() + { + return bobsPrius(bob(), prius()); + } + + public static Car chucksPrius(Owner chuck, CarModel prius) + { + Car chucksPrius = new Car(); + chucksPrius.setModel(prius); + chucksPrius.setRegistrationDate(new GregorianCalendar(2011, Calendar.DECEMBER, 13)); + chucksPrius.setMarketValue(new CurrencyAmount(5400, "USD")); + chucksPrius.setOwner(chuck); + chuck.setCars(Collections.singleton(chucksPrius)); + return chucksPrius; + } + +} Copied: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOFilterMetadataTest.java (from rev 4078, trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/HibernateDAOFilterMetadataTest.java) =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOFilterMetadataTest.java (rev 0) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOFilterMetadataTest.java 2012-06-29 16:11:44 UTC (rev 4079) @@ -0,0 +1,155 @@ +/** + * + * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) + * + * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * You may obtain a copy of the License at + * + * http://www.gnu.org/licenses/lgpl-2.1.html + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +package it.openutils.hibernate.test; + +import static it.openutils.hibernate.test.EntityBuilder.bobsPrius; +import static it.openutils.hibernate.test.EntityBuilder.chuck; +import static it.openutils.hibernate.test.EntityBuilder.chucksPrius; +import static it.openutils.hibernate.test.EntityBuilder.prius; +import static it.openutils.hibernate.test.EntityBuilder.toyota; +import it.openutils.hibernate.example.FilterMetadata; +import it.openutils.hibernate.test.dao.CarDAO; +import it.openutils.hibernate.test.dao.CarMakerDAO; +import it.openutils.hibernate.test.dao.PersonDAO; +import it.openutils.hibernate.test.dao.StickerDAO; +import it.openutils.hibernate.test.model.Car; +import it.openutils.hibernate.test.model.Sticker; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.criterion.Restrictions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.testng.AbstractTransactionalTestNGSpringContextTests; +import org.testng.Assert; +import org.testng.annotations.Test; + + +/** + * @author gcatania + */ +@SuppressWarnings("deprecation") +@ContextConfiguration(locations = "/spring-tests.xml") +public class HibernateDAOFilterMetadataTest extends AbstractTransactionalTestNGSpringContextTests +{ + + @Autowired + private PersonDAO personDAO; + + @Autowired + private CarMakerDAO carMakerDAO; + + @Autowired + private CarDAO carDAO; + + @Autowired + private StickerDAO stickerDAO; + + @Test + public void testFindFilterMetadataBasic() + { + Sticker st1 = new Sticker(); + st1.setName("Warning! Baby on board!"); + st1.setHeight(20d); + st1.setWidth(10d); + Sticker st2 = new Sticker(); + st2.setName("Objects in the mirror are losing"); + st2.setHeight(5d); + st2.setWidth(10d); + Sticker st3 = new Sticker(); + st3.setName("(tribal tattoo sticker)"); + st3.setHeight(35d); + st3.setWidth(18d); + + Car chucksPrius = chucksPrius(chuck(), prius(toyota())); + chucksPrius.setStickers(Arrays.asList(st1, st2, st3)); + carDAO.save(chucksPrius); + carDAO.evict(chucksPrius); + + FilterMetadata fm = new FilterMetadata() + { + + public void createFilter(Criteria criteria, String propertyName, Object propertyValue) + { + criteria.add(Restrictions.gt(propertyName, 18d)); + criteria.add(Restrictions.lt(propertyName, 22d)); + } + }; + List<Sticker> found = stickerDAO.findFiltered(new Sticker(), Collections.singletonMap("height", fm)); + Assert.assertEquals(found.size(), 1); + Assert.assertEquals(found.get(0), st1); + } + + @Test + public void testFindFilterMetadataOnChildProperty() + { + Sticker st1 = new Sticker(); + st1.setName("Warning! Baby on board!"); + st1.setHeight(20d); + st1.setWidth(10d); + Sticker st2 = new Sticker(); + st2.setName("Objects in the mirror are losing"); + st2.setHeight(5d); + st2.setWidth(10d); + Sticker st3 = new Sticker(); + st3.setName("(tribal tattoo sticker)"); + st3.setHeight(35d); + st3.setWidth(18d); + + Car chucksPrius = chucksPrius(chuck(), prius(toyota())); + chucksPrius.setStickers(Arrays.asList(st1, st2, st3)); + + Car bobsPrius = bobsPrius(); + bobsPrius.setStickers(Arrays.asList(st2.clone())); + + carDAO.save(chucksPrius); + carDAO.evict(chucksPrius); + carDAO.save(bobsPrius); + carDAO.evict(bobsPrius); + + FilterMetadata fm = new FilterMetadata() + { + + public void createFilter(Criteria criteria, String propertyName, Object propertyValue) + { + criteria.add(Restrictions.gt(propertyName, 18d)); + criteria.add(Restrictions.lt(propertyName, 22d)); + } + }; + Car filter = new Car(); + filter.setStickers(Collections.singletonList(new Sticker())); + List<Car> found = carDAO.findFiltered(filter, Collections.singletonMap("stickers.height", fm)); + Assert.assertEquals(found.size(), 1); + Car actual = found.get(0); + Assert.assertEquals(actual.getStickers().size(), 3); + // full fledged equality fails because of Object.equals() on PersistentBag + Assert.assertEquals(actual.getOwner().getName(), chucksPrius.getOwner().getName()); + } + +} Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOPersistenceTest.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOPersistenceTest.java 2012-06-29 16:05:56 UTC (rev 4078) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOPersistenceTest.java 2012-06-29 16:11:44 UTC (rev 4079) @@ -25,6 +25,15 @@ package it.openutils.hibernate.test; +import static it.openutils.hibernate.test.EntityBuilder.alice; +import static it.openutils.hibernate.test.EntityBuilder.bob; +import static it.openutils.hibernate.test.EntityBuilder.bobsPrius; +import static it.openutils.hibernate.test.EntityBuilder.chuck; +import static it.openutils.hibernate.test.EntityBuilder.chucksPrius; +import static it.openutils.hibernate.test.EntityBuilder.fiat; +import static it.openutils.hibernate.test.EntityBuilder.prius; +import static it.openutils.hibernate.test.EntityBuilder.priusDesigner; +import static it.openutils.hibernate.test.EntityBuilder.toyota; import it.openutils.hibernate.test.dao.CarDAO; import it.openutils.hibernate.test.dao.CarMakerDAO; import it.openutils.hibernate.test.dao.PersonDAO; @@ -40,11 +49,8 @@ import it.openutils.hibernate.test.model.Person; import it.openutils.hibernate.test.model.Sticker; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Calendar; import java.util.Collections; -import java.util.GregorianCalendar; import java.util.List; import org.hibernate.criterion.Example; @@ -80,120 +86,6 @@ @Autowired private StickerDAO stickerDAO; - private static Person alice() - { - FullName fullName = new FullName("Alice", "McBeal"); - Calendar birthDate = new GregorianCalendar(1970, Calendar.MARCH, 7); - Address address = new Address("Long road", 15, "Smalltown", "MI", 14352); - Person p = new Person(); - p.setName(fullName); - p.setBirthDate(birthDate); - p.setFiscalAddress(address); - p.setCurrentAddress(address); - return p; - } - - private static Owner bob() - { - FullName fullName = new FullName("Bob", "Kelso"); - Calendar birthDate = new GregorianCalendar(1950, Calendar.MARCH, 7); - Address address = new Address("Sacred Heart Lane", 3, "Smalltown", "CA", 11243); - Owner o = new Owner(); - o.setName(fullName); - o.setBirthDate(birthDate); - o.setFiscalAddress(address); - o.setCurrentAddress(address); - return o; - } - - private static Owner chuck() - { - FullName fullName = new FullName("Chuck", "Palahniuk"); - Calendar birthDate = new GregorianCalendar(1962, Calendar.FEBRUARY, 21); - Address address = new Address("Awesome Street", 2, "Pasco", "WA", 13121); - Owner p = new Owner(); - p.setName(fullName); - p.setBirthDate(birthDate); - p.setFiscalAddress(address); - p.setCurrentAddress(address); - return p; - } - - private static CarMaker toyota() - { - CarMaker toyota = new CarMaker(); - toyota.setCode("TYT"); - toyota.setName("Toyota"); - toyota.setCapitalization(new CurrencyAmount(12000, "YEN")); - return toyota; - } - - private static CarMaker fiat() - { - CarMaker fiat = new CarMaker(); - fiat.setCode("FIA"); - fiat.setName("Fabbrica Italiana Automobili Torino"); - fiat.setCapitalization(new CurrencyAmount(80000, "EUR")); - return fiat; - } - - private static CarModel prius(CarMaker toyota) - { - CarModel prius = new CarModel(); - prius.setName("Prius"); - prius.setMake(toyota); - prius.setYear(Integer.valueOf(2008)); - - List<CarModel> toyotaModels = toyota.getModels(); - if (toyotaModels == null) - { - toyotaModels = new ArrayList<CarModel>(); - } - toyotaModels.add(prius); - toyota.setModels(toyotaModels); - return prius; - } - - private static Designer priusDesigner(CarModel prius) - { - FullName fullName = new FullName("Ken", "Shiro"); - Calendar birthDate = new GregorianCalendar(1981, Calendar.OCTOBER, 16); - Address address = new Address("Khan avenue", 6, "Nagato", "TK", 99867); - Designer p = new Designer(); - p.setName(fullName); - p.setBirthDate(birthDate); - p.setFiscalAddress(address); - p.setCurrentAddress(address); - p.setDepartment("design"); - p.setEmployer(prius.getMake()); - p.setDesignedModels(Collections.singleton(prius)); - p.setGrossAnnualSalary(new CurrencyAmount(60000, "YEN")); - p.setHipsterFactor(97); - return p; - } - - private static Car bobsPrius(Owner bob, CarModel prius) - { - Car bobsPrius = new Car(); - bobsPrius.setModel(prius); - bobsPrius.setRegistrationDate(new GregorianCalendar(2010, Calendar.OCTOBER, 28)); - bobsPrius.setMarketValue(new CurrencyAmount(1700, "USD")); - bobsPrius.setOwner(bob); - bob.setCars(Collections.singleton(bobsPrius)); - return bobsPrius; - } - - private static Car chucksPrius(Owner chuck, CarModel prius) - { - Car chucksPrius = new Car(); - chucksPrius.setModel(prius); - chucksPrius.setRegistrationDate(new GregorianCalendar(2011, Calendar.DECEMBER, 13)); - chucksPrius.setMarketValue(new CurrencyAmount(5400, "USD")); - chucksPrius.setOwner(chuck); - chuck.setCars(Collections.singleton(chucksPrius)); - return chucksPrius; - } - /** * basic save/evict/get test. */ 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:29:16
|
Revision: 4081 http://openutils.svn.sourceforge.net/openutils/?rev=4081&view=rev Author: gcatania Date: 2012-06-29 16:29:10 +0000 (Fri, 29 Jun 2012) Log Message: ----------- Merged revisions 4080 via svnmerge from https://openutils.svn.sourceforge.net/svnroot/openutils/trunk/openutils-bshd5 ........ r4080 | gcatania | 2012-06-29 18:27:22 +0200 (Fri, 29 Jun 2012) | 1 line fix filter metadata support ........ Revision Links: -------------- http://openutils.svn.sourceforge.net/openutils/?rev=4080&view=rev Modified Paths: -------------- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java Property Changed: ---------------- branches/openutils-bshd5-backport/ branches/openutils-bshd5-backport/pom.xml branches/openutils-bshd5-backport/src/ Property changes on: branches/openutils-bshd5-backport ___________________________________________________________________ Modified: svnmerge-integrated - /trunk/openutils-bshd5:1-4040,4042-4056,4058-4078 + /trunk/openutils-bshd5:1-4040,4042-4056,4058-4080 Modified: svn:mergeinfo - /trunk/openutils-bshd5:4045-4047*,4057,4059,4069-4070*,4073*,4075-4078* + /trunk/openutils-bshd5:4045-4047*,4057,4059,4069-4070*,4073*,4075-4078*,4080* Property changes on: branches/openutils-bshd5-backport/pom.xml ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/openutils-bshd5/pom.xml:4045-4047,4059,4069-4070,4073,4075-4078 + /trunk/openutils-bshd5/pom.xml:4045-4047,4059,4069-4070,4073,4075-4078,4080 Property changes on: branches/openutils-bshd5-backport/src ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/openutils-bshd5/src:4045-4047,4057,4069-4070,4073,4075-4078 + /trunk/openutils-bshd5/src:4045-4047,4057,4069-4070,4073,4075-4078,4080 Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java 2012-06-29 16:27:22 UTC (rev 4080) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java 2012-06-29 16:29:10 UTC (rev 4081) @@ -130,7 +130,7 @@ } Object propertyValue = classMetadata.getPropertyValue(entity, propertyName, entityMode); FilterMetadata fm = currFilterMetadata.get(propertyName); - if (fm != null) + if (fm != null && propertyValue != null) { fm.createFilter(crit, propertyName, propertyValue); continue; 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:35:01
|
Revision: 4083 http://openutils.svn.sourceforge.net/openutils/?rev=4083&view=rev Author: gcatania Date: 2012-06-29 16:34:55 +0000 (Fri, 29 Jun 2012) Log Message: ----------- Merged revisions 4082 via svnmerge from https://openutils.svn.sourceforge.net/svnroot/openutils/trunk/openutils-bshd5 ........ r4082 | gcatania | 2012-06-29 18:32:50 +0200 (Fri, 29 Jun 2012) | 1 line fix unit tests after backwards compatibility fix ........ Revision Links: -------------- http://openutils.svn.sourceforge.net/openutils/?rev=4082&view=rev Modified Paths: -------------- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOFilterMetadataTest.java Property Changed: ---------------- branches/openutils-bshd5-backport/ branches/openutils-bshd5-backport/pom.xml branches/openutils-bshd5-backport/src/ Property changes on: branches/openutils-bshd5-backport ___________________________________________________________________ Modified: svnmerge-integrated - /trunk/openutils-bshd5:1-4040,4042-4056,4058-4080 + /trunk/openutils-bshd5:1-4040,4042-4056,4058-4082 Modified: svn:mergeinfo - /trunk/openutils-bshd5:4045-4047*,4057,4059,4069-4070*,4073*,4075-4078*,4080* + /trunk/openutils-bshd5:4045-4047*,4057,4059,4069-4070*,4073*,4075-4078*,4080*,4082* Property changes on: branches/openutils-bshd5-backport/pom.xml ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/openutils-bshd5/pom.xml:4045-4047,4059,4069-4070,4073,4075-4078,4080 + /trunk/openutils-bshd5/pom.xml:4045-4047,4059,4069-4070,4073,4075-4078,4080,4082 Property changes on: branches/openutils-bshd5-backport/src ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/openutils-bshd5/src:4045-4047,4057,4069-4070,4073,4075-4078,4080 + /trunk/openutils-bshd5/src:4045-4047,4057,4069-4070,4073,4075-4078,4080,4082 Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOFilterMetadataTest.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOFilterMetadataTest.java 2012-06-29 16:32:50 UTC (rev 4082) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOFilterMetadataTest.java 2012-06-29 16:34:55 UTC (rev 4083) @@ -101,7 +101,9 @@ criteria.add(Restrictions.lt(propertyName, 22d)); } }; - List<Sticker> found = stickerDAO.findFiltered(new Sticker(), Collections.singletonMap("height", fm)); + Sticker stickerFilter = new Sticker(); + stickerFilter.setHeight(12d); // unused but must be not null for backwards compatibility + List<Sticker> found = stickerDAO.findFiltered(stickerFilter, Collections.singletonMap("height", fm)); Assert.assertEquals(found.size(), 1); Assert.assertEquals(found.get(0), st1); } @@ -143,7 +145,9 @@ } }; Car filter = new Car(); - filter.setStickers(Collections.singletonList(new Sticker())); + Sticker stickerFilter = new Sticker(); + stickerFilter.setHeight(12d); // unused but must be not null for backwards compatibility + filter.setStickers(Collections.singletonList(stickerFilter)); List<Car> found = carDAO.findFiltered(filter, Collections.singletonMap("stickers.height", fm)); Assert.assertEquals(found.size(), 1); Car actual = found.get(0); 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:59:55
|
Revision: 4086 http://openutils.svn.sourceforge.net/openutils/?rev=4086&view=rev Author: gcatania Date: 2012-06-29 16:59:49 +0000 (Fri, 29 Jun 2012) Log Message: ----------- Merged revisions 4084-4085 via svnmerge from https://openutils.svn.sourceforge.net/svnroot/openutils/trunk/openutils-bshd5 ........ r4084 | gcatania | 2012-06-29 18:51:34 +0200 (Fri, 29 Jun 2012) | 1 line avoid legacy whenever possible ........ r4085 | gcatania | 2012-06-29 18:55:25 +0200 (Fri, 29 Jun 2012) | 1 line fix filter metadata support not working for empty filter metadata ........ Revision Links: -------------- http://openutils.svn.sourceforge.net/openutils/?rev=4084&view=rev http://openutils.svn.sourceforge.net/openutils/?rev=4085&view=rev Modified Paths: -------------- branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java Property Changed: ---------------- branches/openutils-bshd5-backport/ branches/openutils-bshd5-backport/pom.xml branches/openutils-bshd5-backport/src/ Property changes on: branches/openutils-bshd5-backport ___________________________________________________________________ Modified: svnmerge-integrated - /trunk/openutils-bshd5:1-4040,4042-4056,4058-4082 + /trunk/openutils-bshd5:1-4040,4042-4056,4058-4085 Modified: svn:mergeinfo - /trunk/openutils-bshd5:4045-4047*,4057,4059,4069-4070*,4073*,4075-4078*,4080*,4082* + /trunk/openutils-bshd5:4045-4047*,4057,4059,4069-4070*,4073*,4075-4078*,4080*,4082*,4084-4085* Property changes on: branches/openutils-bshd5-backport/pom.xml ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/openutils-bshd5/pom.xml:4045-4047,4059,4069-4070,4073,4075-4078,4080,4082 + /trunk/openutils-bshd5/pom.xml:4045-4047,4059,4069-4070,4073,4075-4078,4080,4082,4084-4085 Property changes on: branches/openutils-bshd5-backport/src ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/openutils-bshd5/src:4045-4047,4057,4069-4070,4073,4075-4078,4080,4082 + /trunk/openutils-bshd5/src:4045-4047,4057,4069-4070,4073,4075-4078,4080,4082,4084-4085 Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2012-06-29 16:55:25 UTC (rev 4085) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2012-06-29 16:59:49 UTC (rev 4086) @@ -1,4 +1,4 @@ -/** + /** * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * @@ -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; @@ -484,8 +485,16 @@ public List<T> findFiltered(T filter, Map<String, FilterMetadata> metadata, int maxResults, int page, List<Criterion> criteria, Order... orders) { - return (List<T>) getHibernateTemplate().execute( - new LegacySupportCallback<T>(filter, maxResults, page, metadata, criteria, orders)); + HibernateCallback callback; + if (MapUtils.isEmpty(metadata) && CollectionUtils.isEmpty(criteria)) + { + callback = new ExampleTreeCallback(new ExampleTree(filter), maxResults, page, orders); + } + else + { + callback = new LegacySupportCallback(filter, maxResults, page, metadata, criteria, orders); + } + return (List<T>) getHibernateTemplate().execute(callback); } /** @@ -507,8 +516,23 @@ public List<?> findFilteredProperties(T filter, Order[] orders, Map<String, FilterMetadata> metadata, int maxResults, int page, List<Criterion> criteria, List<String> properties) { - return (List<Object>) getHibernateTemplate().execute( - new LegacySupportPropertiesCallback(filter, maxResults, page, metadata, criteria, properties, orders)); + HibernateCallback 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 (List<Object>) getHibernateTemplate().execute(callback); } /** Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java 2012-06-29 16:55:25 UTC (rev 4085) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java 2012-06-29 16:59:49 UTC (rev 4086) @@ -27,11 +27,11 @@ import it.openutils.hibernate.selectors.ExcludeBackrefPropertySelector; +import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.Set; -import org.apache.commons.collections.MapUtils; import org.hibernate.Criteria; import org.hibernate.EntityMode; import org.hibernate.Hibernate; @@ -65,7 +65,7 @@ throw new NullPointerException("Null entity."); } this.entity = entity; - this.filterMetadata = filterMetadata; + this.filterMetadata = filterMetadata != null ? filterMetadata : Collections.<String, FilterMetadata> emptyMap(); } /** @@ -106,10 +106,7 @@ public Criteria walk(Criteria rootCriteria, Object rootEntity) { - if (MapUtils.isNotEmpty(filterMetadata)) - { - createSubExamples(rootCriteria, rootEntity, new String[0]); - } + createSubExamples(rootCriteria, rootEntity, new String[0]); return rootCriteria; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gca...@us...> - 2012-07-02 12:56:33
|
Revision: 4088 http://openutils.svn.sourceforge.net/openutils/?rev=4088&view=rev Author: gcatania Date: 2012-07-02 12:56:22 +0000 (Mon, 02 Jul 2012) Log Message: ----------- Merged revisions 4087 via svnmerge from https://openutils.svn.sourceforge.net/svnroot/openutils/trunk/openutils-bshd5 ........ r4087 | gcatania | 2012-07-02 14:44:01 +0200 (Mon, 02 Jul 2012) | 1 line BSHD-11 also fixed in FilterMetadataSupport ........ Revision Links: -------------- http://openutils.svn.sourceforge.net/openutils/?rev=4087&view=rev Modified Paths: -------------- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTreeUtils.java branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java Property Changed: ---------------- branches/openutils-bshd5-backport/ branches/openutils-bshd5-backport/pom.xml branches/openutils-bshd5-backport/src/ Property changes on: branches/openutils-bshd5-backport ___________________________________________________________________ Modified: svnmerge-integrated - /trunk/openutils-bshd5:1-4040,4042-4056,4058-4085 + /trunk/openutils-bshd5:1-4040,4042-4056,4058-4087 Modified: svn:mergeinfo - /trunk/openutils-bshd5:4045-4047*,4057,4059,4069-4070*,4073*,4075-4078*,4080*,4082*,4084-4085* + /trunk/openutils-bshd5:4045-4047*,4057,4059,4069-4070*,4073*,4075-4078*,4080*,4082*,4084-4085*,4087* Property changes on: branches/openutils-bshd5-backport/pom.xml ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/openutils-bshd5/pom.xml:4045-4047,4059,4069-4070,4073,4075-4078,4080,4082,4084-4085 + /trunk/openutils-bshd5/pom.xml:4045-4047,4059,4069-4070,4073,4075-4078,4080,4082,4084-4085,4087 Property changes on: branches/openutils-bshd5-backport/src ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/openutils-bshd5/src:4045-4047,4057,4069-4070,4073,4075-4078,4080,4082,4084-4085 + /trunk/openutils-bshd5/src:4045-4047,4057,4069-4070,4073,4075-4078,4080,4082,4084-4085,4087 Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java 2012-07-02 12:44:01 UTC (rev 4087) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java 2012-07-02 12:56:22 UTC (rev 4088) @@ -45,8 +45,6 @@ import org.hibernate.criterion.Example; import org.hibernate.criterion.Example.PropertySelector; import org.hibernate.criterion.MatchMode; -import org.hibernate.criterion.Restrictions; -import org.hibernate.engine.SessionImplementor; import org.hibernate.metadata.ClassMetadata; import org.hibernate.type.Type; @@ -265,7 +263,7 @@ } ClassMetadata classMetadata = sessionFactory.getClassMetadata(Hibernate.getClass(entity)); - addIdentifierRestriction(crit, entity, classMetadata); // BSHD-11 + ExampleTreeUtils.addIdentifierRestriction(crit, entity, classMetadata, sessionFactory.getCurrentSession()); // BSHD-11 Type[] types = classMetadata.getPropertyTypes(); String[] names = classMetadata.getPropertyNames(); @@ -300,26 +298,6 @@ } } - /* - * BSHD-11 - */ - private void addIdentifierRestriction(Criteria crit, Object entity, ClassMetadata classMetadata) - { - String identifierName = classMetadata.getIdentifierPropertyName(); - if (identifierName != null) - { - // TODO is this cast really necessary? Will it fail in future hibernate versions? - SessionImplementor si = (SessionImplementor) sessionFactory.getCurrentSession(); - - // Object idValue = classMetadata.getIdentifier(entity, si); - Object idValue = classMetadata.getIdentifier(entity, entityMode); - if (idValue != null) // TODO should we use property selectors instead? - { - crit.add(Restrictions.idEq(idValue)); - } - } - } - private Example example(Object entity, String associationPath) { Example ex = Example.create(entity); @@ -417,4 +395,4 @@ } } -} \ No newline at end of file +} Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTreeUtils.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTreeUtils.java 2012-07-02 12:44:01 UTC (rev 4087) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTreeUtils.java 2012-07-02 12:56:22 UTC (rev 4088) @@ -30,6 +30,11 @@ import java.util.Collection; import org.apache.commons.lang3.StringUtils; +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Restrictions; +import org.hibernate.engine.SessionImplementor; +import org.hibernate.metadata.ClassMetadata; /** @@ -144,4 +149,29 @@ return propertyNames.length > 0 ? StringUtils.join(propertyNames, '.') : StringUtils.EMPTY; } + /** + * adds the identifier restriction to the input criteria, if required + * @param crit the criteria + * @param entity the entity to use as example + * @param classMetadata the class metadata to use + * @param ses the current session + * @see BSHD-11 + */ + public static void addIdentifierRestriction(Criteria crit, Object entity, ClassMetadata classMetadata, Session ses) + { + String identifierName = classMetadata.getIdentifierPropertyName(); + if (identifierName != null) + { + // TODO is this cast really necessary? Will it fail in future hibernate versions? + SessionImplementor si = (SessionImplementor) ses; + + // Object idValue = classMetadata.getIdentifier(entity, si); + Object idValue = classMetadata.getIdentifier(entity, ses.getEntityMode()); + if (idValue != null) // TODO should we use property selectors instead? + { + crit.add(Restrictions.idEq(idValue)); + } + } + } + } Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java 2012-07-02 12:44:01 UTC (rev 4087) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java 2012-07-02 12:56:22 UTC (rev 4088) @@ -116,6 +116,9 @@ Map<String, FilterMetadata> currFilterMetadata = getFilterMetadata(path); crit.add(example(entity, currFilterMetadata.keySet())); ClassMetadata classMetadata = sessionFactory.getClassMetadata(Hibernate.getClass(entity)); + + ExampleTreeUtils.addIdentifierRestriction(crit, entity, classMetadata, sessionFactory.getCurrentSession()); // BSHD-11 + Type[] types = classMetadata.getPropertyTypes(); String[] names = classMetadata.getPropertyNames(); for (int i = 0; i < types.length; i++) 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:22:51
|
Revision: 4090 http://openutils.svn.sourceforge.net/openutils/?rev=4090&view=rev Author: gcatania Date: 2012-07-04 13:22:42 +0000 (Wed, 04 Jul 2012) Log Message: ----------- Merged revisions 4089 via svnmerge from https://openutils.svn.sourceforge.net/svnroot/openutils/trunk/openutils-bshd5 ........ r4089 | gcatania | 2012-07-04 15:19:09 +0200 (Wed, 04 Jul 2012) | 1 line BSHD-2 added support for default filtering on example tree ........ Revision Links: -------------- http://openutils.svn.sourceforge.net/openutils/?rev=4089&view=rev Modified Paths: -------------- branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java Property Changed: ---------------- branches/openutils-bshd5-backport/ branches/openutils-bshd5-backport/pom.xml branches/openutils-bshd5-backport/src/ Property changes on: branches/openutils-bshd5-backport ___________________________________________________________________ Modified: svnmerge-integrated - /trunk/openutils-bshd5:1-4040,4042-4056,4058-4087 + /trunk/openutils-bshd5:1-4040,4042-4056,4058-4089 Modified: svn:mergeinfo - /trunk/openutils-bshd5:4045-4047*,4057,4059,4069-4070*,4073*,4075-4078*,4080*,4082*,4084-4085*,4087* + /trunk/openutils-bshd5:4045-4047*,4057,4059,4069-4070*,4073*,4075-4078*,4080*,4082*,4084-4085*,4087*,4089* Property changes on: branches/openutils-bshd5-backport/pom.xml ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/openutils-bshd5/pom.xml:4045-4047,4059,4069-4070,4073,4075-4078,4080,4082,4084-4085,4087 + /trunk/openutils-bshd5/pom.xml:4045-4047,4059,4069-4070,4073,4075-4078,4080,4082,4084-4085,4087,4089 Property changes on: branches/openutils-bshd5-backport/src ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/openutils-bshd5/src:4045-4047,4057,4069-4070,4073,4075-4078,4080,4082,4084-4085,4087 + /trunk/openutils-bshd5/src:4045-4047,4057,4069-4070,4073,4075-4078,4080,4082,4084-4085,4087,4089 Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2012-07-04 13:19:09 UTC (rev 4089) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2012-07-04 13:22:42 UTC (rev 4090) @@ -191,7 +191,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()); } /** @@ -207,7 +207,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); } /** @@ -223,7 +223,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()); } /** @@ -303,7 +303,7 @@ */ public T findFilteredFirst(T filter, List<Criterion> criteria) { - ExampleTree exampleTree = new ExampleTree(filter); + ExampleTree exampleTree = defaultExample(filter); appendToRoot(exampleTree, criteria); return getFirstInCollection(getThis().findFiltered(exampleTree, Integer.MAX_VALUE, 0, getDefaultOrder())); } @@ -436,7 +436,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); } /** @@ -488,7 +488,7 @@ HibernateCallback callback; if (MapUtils.isEmpty(metadata) && CollectionUtils.isEmpty(criteria)) { - callback = new ExampleTreeCallback(new ExampleTree(filter), maxResults, page, orders); + callback = new ExampleTreeCallback(defaultExample(filter), maxResults, page, orders); } else { @@ -519,7 +519,7 @@ HibernateCallback 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 { @@ -675,11 +675,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, FilterMetadata> getDefaultFilterMetadata() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gca...@us...> - 2012-07-05 15:05:13
|
Revision: 4095 http://openutils.svn.sourceforge.net/openutils/?rev=4095&view=rev Author: gcatania Date: 2012-07-05 15:05:00 +0000 (Thu, 05 Jul 2012) Log Message: ----------- Merged revisions 4091-4092 via svnmerge from https://openutils.svn.sourceforge.net/svnroot/openutils/trunk/openutils-bshd5 ........ r4091 | gcatania | 2012-07-05 16:42:38 +0200 (Thu, 05 Jul 2012) | 1 line BSHD-17 preliminary: avoid possible sql keywords as field names ........ r4092 | gcatania | 2012-07-05 16:49:05 +0200 (Thu, 05 Jul 2012) | 1 line BSHD-17 added derby profile for unit tests ........ Revision Links: -------------- http://openutils.svn.sourceforge.net/openutils/?rev=4091&view=rev http://openutils.svn.sourceforge.net/openutils/?rev=4092&view=rev Modified Paths: -------------- branches/openutils-bshd5-backport/pom.xml branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/EntityBuilder.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOPersistenceTest.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Address.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/CarModel.java branches/openutils-bshd5-backport/src/test/resources/spring-tests.xml Property Changed: ---------------- branches/openutils-bshd5-backport/ branches/openutils-bshd5-backport/pom.xml branches/openutils-bshd5-backport/src/ Property changes on: branches/openutils-bshd5-backport ___________________________________________________________________ Modified: svnmerge-integrated - /trunk/openutils-bshd5:1-4040,4042-4056,4058-4089 + /trunk/openutils-bshd5:1-4040,4042-4056,4058-4092 Modified: svn:mergeinfo - /trunk/openutils-bshd5:4045-4047*,4057,4059,4069-4070*,4073*,4075-4078*,4080*,4082*,4084-4085*,4087*,4089* + /trunk/openutils-bshd5:4045-4047*,4057,4059,4069-4070*,4073*,4075-4078*,4080*,4082*,4084-4085*,4087*,4089*,4091-4092* Modified: branches/openutils-bshd5-backport/pom.xml =================================================================== --- branches/openutils-bshd5-backport/pom.xml 2012-07-05 15:03:58 UTC (rev 4094) +++ branches/openutils-bshd5-backport/pom.xml 2012-07-05 15:05:00 UTC (rev 4095) @@ -29,6 +29,12 @@ <url>http://openutils.svn.sourceforge.net/viewcvs.cgi/openutils/trunk/openutils-bshd5</url> </scm> <build> + <testResources> + <testResource> + <filtering>true</filtering> + <directory>src/test/resources</directory> + </testResource> + </testResources> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> @@ -159,12 +165,6 @@ <scope>test</scope> </dependency> <dependency> - <groupId>org.hsqldb</groupId> - <artifactId>hsqldb</artifactId> - <version>2.2.6</version> - <scope>test</scope> - </dependency> - <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-annotations</artifactId> <version>${hibernate.annotations.version}</version> @@ -192,4 +192,61 @@ <hibernate.annotations.version>3.4.0.GA</hibernate.annotations.version> <javassist.version>3.14.0-GA</javassist.version> </properties> + + <profiles> + <profile> + <id>test-hsql</id> + <activation> + <activeByDefault>true</activeByDefault> + </activation> + <properties> + <hibernate.driver>org.hsqldb.jdbcDriver</hibernate.driver> + <hibernate.url>jdbc:hsqldb:mem:daotest</hibernate.url> + <hibernate.user>sa</hibernate.user> + <hibernate.password></hibernate.password> + <hibernate.dialect>org.hibernate.dialect.HSQLDialect</hibernate.dialect> + </properties> + <dependencies> + <dependency> + <groupId>org.hsqldb</groupId> + <artifactId>hsqldb</artifactId> + <version>2.2.8</version> + <scope>test</scope> + </dependency> + </dependencies> + </profile> + <profile> + <id>test-derby</id> + <properties> + <hibernate.driver>org.apache.derby.jdbc.EmbeddedDriver</hibernate.driver> + <hibernate.url>jdbc:derby:memory:daotest;create=true</hibernate.url> + <hibernate.user>sa</hibernate.user> + <hibernate.password></hibernate.password> + <hibernate.dialect>org.hibernate.dialect.DerbyDialect</hibernate.dialect> + </properties> + <build> + <plugins> + <plugin> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <systemProperties> + <property> + <name>derby.stream.error.file</name> + <value>${project.build.directory}/derby.log</value> + </property> + </systemProperties> + </configuration> + </plugin> + </plugins> + </build> + <dependencies> + <dependency> + <groupId>org.apache.derby</groupId> + <artifactId>derby</artifactId> + <version>10.9.1.0</version> + <scope>test</scope> + </dependency> + </dependencies> + </profile> + </profiles> </project> Property changes on: branches/openutils-bshd5-backport/pom.xml ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/openutils-bshd5/pom.xml:4045-4047,4059,4069-4070,4073,4075-4078,4080,4082,4084-4085,4087,4089 + /trunk/openutils-bshd5/pom.xml:4045-4047,4059,4069-4070,4073,4075-4078,4080,4082,4084-4085,4087,4089,4091-4092 Property changes on: branches/openutils-bshd5-backport/src ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/openutils-bshd5/src:4045-4047,4057,4069-4070,4073,4075-4078,4080,4082,4084-4085,4087,4089 + /trunk/openutils-bshd5/src:4045-4047,4057,4069-4070,4073,4075-4078,4080,4082,4084-4085,4087,4089,4091-4092 Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/EntityBuilder.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/EntityBuilder.java 2012-07-05 15:03:58 UTC (rev 4094) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/EntityBuilder.java 2012-07-05 15:05:00 UTC (rev 4095) @@ -115,7 +115,7 @@ CarModel prius = new CarModel(); prius.setName("Prius"); prius.setMake(toyota); - prius.setYear(Integer.valueOf(2008)); + prius.setLaunchYear(Integer.valueOf(2008)); List<CarModel> toyotaModels = toyota.getModels(); if (toyotaModels == null) Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOPersistenceTest.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOPersistenceTest.java 2012-07-05 15:03:58 UTC (rev 4094) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOPersistenceTest.java 2012-07-05 15:05:00 UTC (rev 4095) @@ -128,7 +128,7 @@ Assert.assertEquals(rd.getEmployer(), toyota); Assert.assertEquals(prius.getMake(), toyota); Assert.assertEquals(rd.getHipsterFactor(), 97); - Assert.assertEquals(rd.getDesignedModels().iterator().next().getYear(), Integer.valueOf(2008)); + Assert.assertEquals(rd.getDesignedModels().iterator().next().getLaunchYear(), Integer.valueOf(2008)); } @Test Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Address.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Address.java 2012-07-05 15:03:58 UTC (rev 4094) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Address.java 2012-07-05 15:05:00 UTC (rev 4095) @@ -47,7 +47,7 @@ private String street; @Column(nullable = false, scale = 4) - private Integer no; + private Integer streetNumber; @Column(nullable = false, length = 50) private String city; @@ -62,10 +62,10 @@ { } - public Address(String street, Integer no, String city, String county, Integer zipCode) + public Address(String street, Integer streetNumber, String city, String county, Integer zipCode) { this.street = street; - this.no = no; + this.streetNumber = streetNumber; this.city = city; this.county = county; this.zipCode = zipCode; @@ -104,19 +104,19 @@ } /** - * @return the no + * @return the streetNumber */ - public Integer getNo() + public Integer getStreetNumber() { - return no; + return streetNumber; } /** - * @param no the no to set + * @param streetNumber the no to set */ - public void setNo(Integer no) + public void setStreetNumber(Integer streetNumber) { - this.no = no; + this.streetNumber = streetNumber; } /** @@ -178,7 +178,7 @@ result = prime * result + ((city == null) ? 0 : city.hashCode()); result = prime * result + ((county == null) ? 0 : county.hashCode()); result = prime * result + ((id == null) ? 0 : id.hashCode()); - result = prime * result + ((no == null) ? 0 : no.hashCode()); + result = prime * result + ((streetNumber == null) ? 0 : streetNumber.hashCode()); result = prime * result + ((street == null) ? 0 : street.hashCode()); result = prime * result + ((zipCode == null) ? 0 : zipCode.hashCode()); return result; @@ -236,14 +236,14 @@ { return false; } - if (no == null) + if (streetNumber == null) { - if (other.no != null) + if (other.streetNumber != null) { return false; } } - else if (!no.equals(other.no)) + else if (!streetNumber.equals(other.streetNumber)) { return false; } @@ -284,8 +284,8 @@ + county + ", id=" + id - + ", no=" - + no + + ", streetNumber=" + + streetNumber + ", street=" + street + ", zipCode=" Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/CarModel.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/CarModel.java 2012-07-05 15:03:58 UTC (rev 4094) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/CarModel.java 2012-07-05 15:05:00 UTC (rev 4095) @@ -52,7 +52,7 @@ private String name; @Column - private Integer year; + private Integer launchYear; /** * @return the id @@ -103,19 +103,19 @@ } /** - * @return the year + * @return the launchYear */ - public Integer getYear() + public Integer getLaunchYear() { - return year; + return launchYear; } /** - * @param year the year to set + * @param launchYear the launchYear to set */ - public void setYear(Integer year) + public void setLaunchYear(Integer launchYear) { - this.year = year; + this.launchYear = launchYear; } /** @@ -129,7 +129,7 @@ result = prime * result + ((id == null) ? 0 : id.hashCode()); result = prime * result + ((make == null) ? 0 : make.hashCode()); result = prime * result + ((name == null) ? 0 : name.hashCode()); - result = prime * result + ((year == null) ? 0 : year.hashCode()); + result = prime * result + ((launchYear == null) ? 0 : launchYear.hashCode()); return result; } @@ -185,14 +185,14 @@ { return false; } - if (year == null) + if (launchYear == null) { - if (other.year != null) + if (other.launchYear != null) { return false; } } - else if (!year.equals(other.year)) + else if (!launchYear.equals(other.launchYear)) { return false; } @@ -211,8 +211,8 @@ .append(id) .append(", name=") .append(name) - .append(", year=") - .append(year) + .append(", launchYear=") + .append(launchYear) .append("]"); return builder.toString(); } Modified: branches/openutils-bshd5-backport/src/test/resources/spring-tests.xml =================================================================== --- branches/openutils-bshd5-backport/src/test/resources/spring-tests.xml 2012-07-05 15:03:58 UTC (rev 4094) +++ branches/openutils-bshd5-backport/src/test/resources/spring-tests.xml 2012-07-05 15:05:00 UTC (rev 4095) @@ -11,10 +11,10 @@ <context:annotation-config /> <context:component-scan base-package="it.openutils.hibernate.test" /> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> - <property name="driverClassName" value="org.hsqldb.jdbcDriver" /> - <property name="url" value="jdbc:hsqldb:mem:daotest" /> - <property name="username" value="sa" /> - <property name="password" value="" /> + <property name="driverClassName" value="${hibernate.driver}" /> + <property name="url" value="${hibernate.url}" /> + <property name="username" value="${hibernate.user}" /> + <property name="password" value="${hibernate.password}" /> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> @@ -22,7 +22,7 @@ <property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration" /> <property name="hibernateProperties"> <props> - <prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop> + <prop key="hibernate.dialect">${hibernate.dialect}</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.hbm2ddl.auto">create-drop</prop> </props> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gca...@us...> - 2013-02-14 15:58:53
|
Revision: 4193 http://openutils.svn.sourceforge.net/openutils/?rev=4193&view=rev Author: gcatania Date: 2013-02-14 15:58:42 +0000 (Thu, 14 Feb 2013) Log Message: ----------- Merged revisions 4192 via svnmerge from https://openutils.svn.sourceforge.net/svnroot/openutils/trunk/openutils-bshd5 ........ r4192 | gcatania | 2013-02-14 16:32:53 +0100 (gio, 14 feb 2013) | 1 line BSHD-18 improve error message for missing hibernate entity mapping ........ Revision Links: -------------- http://openutils.svn.sourceforge.net/openutils/?rev=4192&view=rev Modified Paths: -------------- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTreeUtils.java branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java Property Changed: ---------------- branches/openutils-bshd5-backport/ branches/openutils-bshd5-backport/src/ Property changes on: branches/openutils-bshd5-backport ___________________________________________________________________ Modified: svnmerge-integrated - /trunk/openutils-bshd5:1-4040,4042-4056,4058-4092 + /trunk/openutils-bshd5:1-4040,4042-4056,4058-4092,4192 Modified: svn:mergeinfo - /trunk/openutils-bshd5:4045-4047*,4057,4059,4069-4070*,4073*,4075-4078*,4080*,4082*,4084-4085*,4087*,4089*,4091-4092* + /trunk/openutils-bshd5:4045-4047*,4057,4059,4069-4070*,4073*,4075-4078*,4080*,4082*,4084-4085*,4087*,4089*,4091-4092*,4192* Property changes on: branches/openutils-bshd5-backport/src ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/openutils-bshd5/src:4045-4047,4057,4069-4070,4073,4075-4078,4080,4082,4084-4085,4087,4089,4091-4092 + /trunk/openutils-bshd5/src:4045-4047,4057,4069-4070,4073,4075-4078,4080,4082,4084-4085,4087,4089,4091-4092,4192 Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java 2013-02-14 15:32:53 UTC (rev 4192) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java 2013-02-14 15:58:42 UTC (rev 4193) @@ -261,10 +261,9 @@ { crit.add(c); } - ClassMetadata classMetadata = sessionFactory.getClassMetadata(Hibernate.getClass(entity)); + ClassMetadata classMetadata = ExampleTreeUtils.getClassMetadata(entity, sessionFactory); ExampleTreeUtils.addIdentifierRestriction(crit, entity, classMetadata, sessionFactory.getCurrentSession()); // BSHD-11 - Type[] types = classMetadata.getPropertyTypes(); String[] names = classMetadata.getPropertyNames(); for (int i = 0; i < types.length; i++) Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTreeUtils.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTreeUtils.java 2013-02-14 15:32:53 UTC (rev 4192) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTreeUtils.java 2013-02-14 15:58:42 UTC (rev 4193) @@ -31,7 +31,9 @@ import org.apache.commons.lang3.StringUtils; import org.hibernate.Criteria; +import org.hibernate.Hibernate; import org.hibernate.Session; +import org.hibernate.SessionFactory; import org.hibernate.criterion.Restrictions; import org.hibernate.engine.SessionImplementor; import org.hibernate.metadata.ClassMetadata; @@ -106,7 +108,8 @@ } if (size > 1) { - throw new IllegalArgumentException("More than one element in filter collection is unsupported."); + throw new IllegalArgumentException("More than one element in filter collection is unsupported.\n" + + coll); } } Class< ? extends Object> clazz = collectionValue.getClass(); @@ -128,6 +131,25 @@ } /** + * obtains the hibernate class metadata for the input entity + * @param entity the hibernate entity + * @param sessionFactory the session factory to retrieve metadata from + * @return the class metadata + * @throws IllegalStateException if no class metadata is configured for the input entity + */ + public static ClassMetadata getClassMetadata(Object entity, SessionFactory sessionFactory) + throws IllegalStateException + { + Class< ? > cl = Hibernate.getClass(entity); + ClassMetadata classMetadata = sessionFactory.getClassMetadata(cl); + if (classMetadata == null) + { + throw new IllegalStateException("No hibernate class metadata found for: " + cl); + } + return classMetadata; + } + + /** * @param strings an array of strings * @param s the string to append * @return a new array containing the input string array plus the input string at the end Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java 2013-02-14 15:32:53 UTC (rev 4192) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java 2013-02-14 15:58:42 UTC (rev 4193) @@ -115,10 +115,9 @@ String path = ExampleTreeUtils.getPath(walkedProperties); Map<String, FilterMetadata> currFilterMetadata = getFilterMetadata(path); crit.add(example(entity, currFilterMetadata.keySet())); - ClassMetadata classMetadata = sessionFactory.getClassMetadata(Hibernate.getClass(entity)); + ClassMetadata classMetadata = ExampleTreeUtils.getClassMetadata(entity, sessionFactory); ExampleTreeUtils.addIdentifierRestriction(crit, entity, classMetadata, sessionFactory.getCurrentSession()); // BSHD-11 - Type[] types = classMetadata.getPropertyTypes(); String[] names = classMetadata.getPropertyNames(); for (int i = 0; i < types.length; i++) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gca...@us...> - 2013-03-11 15:45:37
|
Revision: 4199 http://openutils.svn.sourceforge.net/openutils/?rev=4199&view=rev Author: gcatania Date: 2013-03-11 15:45:30 +0000 (Mon, 11 Mar 2013) Log Message: ----------- Merged revisions 4195 via svnmerge from https://openutils.svn.sourceforge.net/svnroot/openutils/trunk/openutils-bshd5 ........ r4195 | gcatania | 2013-03-11 16:03:14 +0100 (lun, 11 mar 2013) | 1 line BSHD-19 failing tests added (currently disabled) ........ Revision Links: -------------- http://openutils.svn.sourceforge.net/openutils/?rev=4195&view=rev Modified Paths: -------------- branches/openutils-bshd5-backport/src/test/resources/hibernate.cfg.xml Added Paths: ----------- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOLazyLoadTest.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/BarDAO.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/FooDAO.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Bar.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Foo.java branches/openutils-bshd5-backport/src/test/resources/preload-data.sql Property Changed: ---------------- branches/openutils-bshd5-backport/ branches/openutils-bshd5-backport/src/ Property changes on: branches/openutils-bshd5-backport ___________________________________________________________________ Modified: svnmerge-integrated - /trunk/openutils-bshd5:1-4040,4042-4056,4058-4092,4192 + /trunk/openutils-bshd5:1-4040,4042-4056,4058-4092,4192,4195 Modified: svn:mergeinfo - /trunk/openutils-bshd5:4045-4047*,4057,4059,4069-4070*,4073*,4075-4078*,4080*,4082*,4084-4085*,4087*,4089*,4091-4092*,4192* + /trunk/openutils-bshd5:4045-4047*,4057,4059,4069-4070*,4073*,4075-4078*,4080*,4082*,4084-4085*,4087*,4089*,4091-4092*,4192*,4195* Property changes on: branches/openutils-bshd5-backport/src ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/openutils-bshd5/src:4045-4047,4057,4069-4070,4073,4075-4078,4080,4082,4084-4085,4087,4089,4091-4092,4192 + /trunk/openutils-bshd5/src:4045-4047,4057,4069-4070,4073,4075-4078,4080,4082,4084-4085,4087,4089,4091-4092,4192,4195 Copied: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOLazyLoadTest.java (from rev 4195, trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/HibernateDAOLazyLoadTest.java) =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOLazyLoadTest.java (rev 0) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOLazyLoadTest.java 2013-03-11 15:45:30 UTC (rev 4199) @@ -0,0 +1,147 @@ +/** + * + * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) + * + * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * You may obtain a copy of the License at + * + * http://www.gnu.org/licenses/lgpl-2.1.html + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +package it.openutils.hibernate.test; + +import it.openutils.hibernate.test.dao.BarDAO; +import it.openutils.hibernate.test.dao.FooDAO; +import it.openutils.hibernate.test.model.Bar; +import it.openutils.hibernate.test.model.Foo; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.testng.AbstractTransactionalTestNGSpringContextTests; +import org.testng.Assert; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + + +/** + * @author gcatania + */ +@ContextConfiguration(locations = "/spring-tests.xml") +public class HibernateDAOLazyLoadTest extends AbstractTransactionalTestNGSpringContextTests +{ + + @Autowired + private FooDAO fooDAO; + + @Autowired + private BarDAO barDAO; + + @BeforeClass + protected final void preloadData() + { + executeSqlScript("/preload-data.sql", false); + } + + private List<Foo> findFoo(String s, Bar bar) + { + Foo filter = new Foo(); + filter.setBar(bar); + filter.setS(s); + List<Foo> found = fooDAO.findFiltered(filter); + return found; + } + + private void testFind(long barId, String fooStr, Bar bar) + { + List<Foo> found = findFoo(fooStr, bar); + Assert.assertEquals(found.size(), 1); + Foo foo = found.get(0); + Assert.assertEquals(foo.getS(), fooStr); + Assert.assertEquals(foo.getBar().getId().longValue(), barId); + } + + private void testDontFind(String fooStr, Bar bar) + { + List<Foo> found = findFoo(fooStr, bar); + Assert.assertEquals(found.size(), 0); + } + + private void testFindEager(long barId, String fooStr) + { + Bar bar = barDAO.get(barId); + testFind(barId, fooStr, bar); + } + + private void testFindLazy(long barId, String fooStr) + { + Bar bar = barDAO.load(barId); + testFind(barId, fooStr, bar); + } + + @Test + public void testFindWithEagerParent1() + { + testFindEager(1L, "foo1_2"); + } + + @Test + public void testFindWithEagerParent2() + { + testFindEager(1L, "fooX_X"); + } + + @Test + public void testFindWithLazyParent1() + { + testFindLazy(1L, "foo1_2"); + } + + /** + * FIXME enable this test and fix BSHD-19 + */ + @Test(enabled = false) + public void testFindWithLazyParent2() + { + testFindLazy(1L, "fooX_X"); + } + + @Test + public void testDontFindWithEagerParent() + { + long barId = 1L; + String fooStr = "foo2_2"; + + Bar bar1 = barDAO.get(barId); + testDontFind(fooStr, bar1); + } + + /** + * FIXME enable this test and fix BSHD-19 + */ + @Test(enabled = false) + public void testDontFindWithLazyParent() + { + long barId = 1L; + String fooStr = "foo2_2"; + + Bar bar1 = barDAO.load(barId); + testDontFind(fooStr, bar1); + } +} Copied: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/BarDAO.java (from rev 4195, trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/dao/BarDAO.java) =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/BarDAO.java (rev 0) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/BarDAO.java 2013-03-11 15:45:30 UTC (rev 4199) @@ -0,0 +1,55 @@ +/** + * + * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) + * + * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * You may obtain a copy of the License at + * + * http://www.gnu.org/licenses/lgpl-2.1.html + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +package it.openutils.hibernate.test.dao; + +import it.openutils.dao.hibernate.HibernateDAO; +import it.openutils.dao.hibernate.HibernateDAOImpl; +import it.openutils.hibernate.test.model.Bar; + +import org.hibernate.SessionFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Repository; + + +/** + * @author gcatania + */ +public interface BarDAO extends HibernateDAO<Bar, Long> +{ + + @Repository("barDAO") + class PersonDAOImpl extends HibernateDAOImpl<Bar, Long> implements BarDAO + { + + @Autowired + public PersonDAOImpl(SessionFactory factory) + { + super(Bar.class); + setSessionFactory(factory); + } + } + +} Copied: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/FooDAO.java (from rev 4195, trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/dao/FooDAO.java) =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/FooDAO.java (rev 0) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/FooDAO.java 2013-03-11 15:45:30 UTC (rev 4199) @@ -0,0 +1,55 @@ +/** + * + * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) + * + * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * You may obtain a copy of the License at + * + * http://www.gnu.org/licenses/lgpl-2.1.html + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +package it.openutils.hibernate.test.dao; + +import it.openutils.dao.hibernate.HibernateDAO; +import it.openutils.dao.hibernate.HibernateDAOImpl; +import it.openutils.hibernate.test.model.Foo; + +import org.hibernate.SessionFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Repository; + + +/** + * @author gcatania + */ +public interface FooDAO extends HibernateDAO<Foo, Long> +{ + + @Repository("fooDAO") + class PersonDAOImpl extends HibernateDAOImpl<Foo, Long> implements FooDAO + { + + @Autowired + public PersonDAOImpl(SessionFactory factory) + { + super(Foo.class); + setSessionFactory(factory); + } + } + +} Copied: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Bar.java (from rev 4195, trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Bar.java) =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Bar.java (rev 0) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Bar.java 2013-03-11 15:45:30 UTC (rev 4199) @@ -0,0 +1,80 @@ +/** + * + * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) + * + * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * You may obtain a copy of the License at + * + * http://www.gnu.org/licenses/lgpl-2.1.html + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +package it.openutils.hibernate.test.model; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + + +/** + * @author gcatania + * @version $Id$ + */ +@Entity +public class Bar implements Cloneable +{ + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + + private String s; + + /** + * @return the id + */ + public Long getId() + { + return id; + } + + /** + * @param id the id to set + */ + public void setId(Long id) + { + this.id = id; + } + + /** + * @return the s + */ + public String getS() + { + return s; + } + + /** + * @param s the s to set + */ + public void setS(String s) + { + this.s = s; + } + +} Copied: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Foo.java (from rev 4195, trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/model/Foo.java) =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Foo.java (rev 0) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Foo.java 2013-03-11 15:45:30 UTC (rev 4199) @@ -0,0 +1,102 @@ +/** + * + * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) + * + * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * You may obtain a copy of the License at + * + * http://www.gnu.org/licenses/lgpl-2.1.html + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +package it.openutils.hibernate.test.model; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.ManyToOne; + + +/** + * @author gcatania + * @version $Id$ + */ +@Entity +public class Foo implements Cloneable +{ + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + + @ManyToOne + private Bar bar; + + @Column + private String s; + + /** + * @return the id + */ + public Long getId() + { + return id; + } + + /** + * @param id the id to set + */ + public void setId(Long id) + { + this.id = id; + } + + /** + * @return the bar + */ + public Bar getBar() + { + return bar; + } + + /** + * @param bar the bar to set + */ + public void setBar(Bar bar) + { + this.bar = bar; + } + + /** + * @return the s + */ + public String getS() + { + return s; + } + + /** + * @param s the s to set + */ + public void setS(String s) + { + this.s = s; + } + +} Modified: branches/openutils-bshd5-backport/src/test/resources/hibernate.cfg.xml =================================================================== --- branches/openutils-bshd5-backport/src/test/resources/hibernate.cfg.xml 2013-03-11 15:34:58 UTC (rev 4198) +++ branches/openutils-bshd5-backport/src/test/resources/hibernate.cfg.xml 2013-03-11 15:45:30 UTC (rev 4199) @@ -13,5 +13,8 @@ <mapping class="it.openutils.hibernate.test.model.Owner" /> <mapping class="it.openutils.hibernate.test.model.Person" /> <mapping class="it.openutils.hibernate.test.model.Sticker" /> + + <mapping class="it.openutils.hibernate.test.model.Foo" /> + <mapping class="it.openutils.hibernate.test.model.Bar" /> </session-factory> </hibernate-configuration> \ No newline at end of file Copied: branches/openutils-bshd5-backport/src/test/resources/preload-data.sql (from rev 4195, trunk/openutils-bshd5/src/test/resources/preload-data.sql) =================================================================== --- branches/openutils-bshd5-backport/src/test/resources/preload-data.sql (rev 0) +++ branches/openutils-bshd5-backport/src/test/resources/preload-data.sql 2013-03-11 15:45:30 UTC (rev 4199) @@ -0,0 +1,17 @@ +insert into bar (id, s) +values (1, 'bar1'); +insert into bar (id, s) +values (2, 'bar2'); + +insert into foo (id, bar_id, s) +values ( 1, 1, 'foo1_1' ); +insert into foo (id, bar_id, s) +values ( 2, 1, 'foo1_2' ); +insert into foo (id, bar_id, s) +values ( 3, 1, 'fooX_X' ); +insert into foo (id, bar_id, s) +values ( 4, 2, 'foo2_1' ); +insert into foo (id, bar_id, s) +values ( 5, 2, 'foo2_2' ); +insert into foo (id, bar_id, s) +values ( 6, 2, 'fooX_X' ); \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gca...@us...> - 2013-03-12 09:14:07
|
Revision: 4202 http://openutils.svn.sourceforge.net/openutils/?rev=4202&view=rev Author: gcatania Date: 2013-03-12 09:13:58 +0000 (Tue, 12 Mar 2013) Log Message: ----------- Merged revisions 4201 via svnmerge from https://openutils.svn.sourceforge.net/svnroot/openutils/trunk/openutils-bshd5 ........ r4201 | gcatania | 2013-03-12 10:06:55 +0100 (mar, 12 mar 2013) | 1 line BSHD-20 make identifier restrictions alternative to examples and filter metadata ........ Revision Links: -------------- http://openutils.svn.sourceforge.net/openutils/?rev=4201&view=rev Modified Paths: -------------- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTreeUtils.java branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java Property Changed: ---------------- branches/openutils-bshd5-backport/ branches/openutils-bshd5-backport/src/ Property changes on: branches/openutils-bshd5-backport ___________________________________________________________________ Modified: svnmerge-integrated - /trunk/openutils-bshd5:1-4040,4042-4056,4058-4092,4192,4195 + /trunk/openutils-bshd5:1-4040,4042-4056,4058-4092,4192,4195,4201 Modified: svn:mergeinfo - /trunk/openutils-bshd5:4045-4047*,4057,4059,4069-4070*,4073*,4075-4078*,4080*,4082*,4084-4085*,4087*,4089*,4091-4092*,4192*,4195* + /trunk/openutils-bshd5:4045-4047*,4057,4059,4069-4070*,4073*,4075-4078*,4080*,4082*,4084-4085*,4087*,4089*,4091-4092*,4192*,4195*,4201* Property changes on: branches/openutils-bshd5-backport/src ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/openutils-bshd5/src:4045-4047,4057,4069-4070,4073,4075-4078,4080,4082,4084-4085,4087,4089,4091-4092,4192,4195 + /trunk/openutils-bshd5/src:4045-4047,4057,4069-4070,4073,4075-4078,4080,4082,4084-4085,4087,4089,4091-4092,4192,4195,4201 Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java 2013-03-12 09:06:55 UTC (rev 4201) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java 2013-03-12 09:13:58 UTC (rev 4202) @@ -255,6 +255,18 @@ private void createSubExamples(Criteria crit, Object entity, String[] walkedProperties) { + ClassMetadata classMetadata = ExampleTreeUtils.getClassMetadata(entity, sessionFactory); + boolean isIdSet = ExampleTreeUtils.addIdentifierRestriction( + crit, + entity, + classMetadata, + sessionFactory.getCurrentSession()); // BSHD-11 + if (isIdSet) + { + // BSHD-20 if the identifier is set on a property, do not impose further conditions + return; + } + String associationPath = ExampleTreeUtils.getPath(walkedProperties); crit.add(example(entity, associationPath)); for (Criterion c : getAdditionalConditions(associationPath)) @@ -262,8 +274,6 @@ crit.add(c); } - ClassMetadata classMetadata = ExampleTreeUtils.getClassMetadata(entity, sessionFactory); - ExampleTreeUtils.addIdentifierRestriction(crit, entity, classMetadata, sessionFactory.getCurrentSession()); // BSHD-11 Type[] types = classMetadata.getPropertyTypes(); String[] names = classMetadata.getPropertyNames(); for (int i = 0; i < types.length; i++) Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTreeUtils.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTreeUtils.java 2013-03-12 09:06:55 UTC (rev 4201) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTreeUtils.java 2013-03-12 09:13:58 UTC (rev 4202) @@ -178,9 +178,11 @@ * @param entity the entity to use as example * @param classMetadata the class metadata to use * @param ses the current session - * @see BSHD-11 + * @return true if the identifier restriction has been added, false otherwise + * @see BSHD-11, BSHD-20 */ - public static void addIdentifierRestriction(Criteria crit, Object entity, ClassMetadata classMetadata, Session ses) + public static boolean addIdentifierRestriction(Criteria crit, Object entity, ClassMetadata classMetadata, + Session ses) { String identifierName = classMetadata.getIdentifierPropertyName(); if (identifierName != null) @@ -199,8 +201,10 @@ if (idValue != null) // TODO should we use property selectors instead? { crit.add(Restrictions.idEq(idValue)); + return true; } } + return false; } } Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java 2013-03-12 09:06:55 UTC (rev 4201) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java 2013-03-12 09:13:58 UTC (rev 4202) @@ -112,12 +112,22 @@ private void createSubExamples(Criteria crit, Object entity, String[] walkedProperties) { + ClassMetadata classMetadata = ExampleTreeUtils.getClassMetadata(entity, sessionFactory); + boolean isIdSet = ExampleTreeUtils.addIdentifierRestriction( + crit, + entity, + classMetadata, + sessionFactory.getCurrentSession()); // BSHD-11 + if (isIdSet) + { + // BSHD-20 if the identifier is set on a property, do not impose further conditions + return; + } + String path = ExampleTreeUtils.getPath(walkedProperties); Map<String, FilterMetadata> currFilterMetadata = getFilterMetadata(path); crit.add(example(entity, currFilterMetadata.keySet())); - ClassMetadata classMetadata = ExampleTreeUtils.getClassMetadata(entity, sessionFactory); - ExampleTreeUtils.addIdentifierRestriction(crit, entity, classMetadata, sessionFactory.getCurrentSession()); // BSHD-11 Type[] types = classMetadata.getPropertyTypes(); String[] names = classMetadata.getPropertyNames(); for (int i = 0; i < types.length; i++) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gca...@us...> - 2013-03-15 13:55:32
|
Revision: 4204 http://openutils.svn.sourceforge.net/openutils/?rev=4204&view=rev Author: gcatania Date: 2013-03-15 13:55:23 +0000 (Fri, 15 Mar 2013) Log Message: ----------- Merged revisions 4197,4203 via svnmerge from https://openutils.svn.sourceforge.net/svnroot/openutils/trunk/openutils-bshd5 ........ r4197 | gcatania | 2013-03-11 16:29:17 +0100 (lun, 11 mar 2013) | 1 line BSHD-19 re-enable tests that no longer fail after version bump ........ r4203 | gcatania | 2013-03-14 15:25:36 +0100 (gio, 14 mar 2013) | 1 line BSHD-20 add flag to change identifier restriction behavior, tests ........ Revision Links: -------------- http://openutils.svn.sourceforge.net/openutils/?rev=4197&view=rev http://openutils.svn.sourceforge.net/openutils/?rev=4203&view=rev Modified Paths: -------------- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOLazyLoadTest.java Added Paths: ----------- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOFindIdentifierTest.java Property Changed: ---------------- branches/openutils-bshd5-backport/ branches/openutils-bshd5-backport/src/ Property changes on: branches/openutils-bshd5-backport ___________________________________________________________________ Modified: svnmerge-integrated - /trunk/openutils-bshd5:1-4040,4042-4056,4058-4092,4192,4195,4201 + /trunk/openutils-bshd5:1-4040,4042-4056,4058-4092,4095-4096,4098-4195,4197-4203 Modified: svn:mergeinfo - /trunk/openutils-bshd5:4045-4047*,4057,4059,4069-4070*,4073*,4075-4078*,4080*,4082*,4084-4085*,4087*,4089*,4091-4092*,4192*,4195*,4201* + /trunk/openutils-bshd5:4045-4047*,4057,4059,4069-4070*,4073*,4075-4078*,4080*,4082*,4084-4085*,4087*,4089*,4091-4092*,4192*,4195*,4197*,4201*,4203* Property changes on: branches/openutils-bshd5-backport/src ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/openutils-bshd5/src:4045-4047,4057,4069-4070,4073,4075-4078,4080,4082,4084-4085,4087,4089,4091-4092,4192,4195,4201 + /trunk/openutils-bshd5/src:4045-4047,4057,4069-4070,4073,4075-4078,4080,4082,4084-4085,4087,4089,4091-4092,4192,4195,4201,4203 Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java 2013-03-14 14:25:36 UTC (rev 4203) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java 2013-03-15 13:55:23 UTC (rev 4204) @@ -46,6 +46,7 @@ import org.hibernate.criterion.Example.PropertySelector; import org.hibernate.criterion.MatchMode; import org.hibernate.metadata.ClassMetadata; +import org.hibernate.proxy.HibernateProxy; import org.hibernate.type.Type; @@ -68,6 +69,8 @@ private boolean isIgnoreCaseEnabled; + private boolean jointPropertyAndIdentifierFiltering; + private final Map<String, Set<String>> excludedProperties = new HashMap<String, Set<String>>(); private final Map<String, List<Criterion>> additionalConditions = new HashMap<String, List<Criterion>>(); @@ -183,6 +186,18 @@ } /** + * The default behaviour of this class ignores properties set on a filter entity with a non-null identifier. + * Invoking this method reverses the default behaviour by enabling property filtering regardless of identifier + * presence. + * @return this, for method concatenation + */ + public ExampleTree enableJointPropertyAndIdentifierFiltering() + { + jointPropertyAndIdentifierFiltering = true; + return this; + } + + /** * add an additional criterion for properties of the subentity at the given path * @param associationPath the association path with respect to the filter entity * @param criterion the criterion to add @@ -261,9 +276,12 @@ entity, classMetadata, sessionFactory.getCurrentSession()); // BSHD-11 - if (isIdSet) + if (isIdSet && (HibernateProxy.class.isInstance(entity) || !jointPropertyAndIdentifierFiltering)) { - // BSHD-20 if the identifier is set on a property, do not impose further conditions + // BSHD-20 only impose the identifier conditions in the following cases: + // 1) if the current entity is an hibernate proxy (because we assume the identifier restriction is + // enough and the entity is already aligned + // 2) if the corresponding flag has not been explicitly activated return; } Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java 2013-03-14 14:25:36 UTC (rev 4203) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java 2013-03-15 13:55:23 UTC (rev 4204) @@ -39,6 +39,7 @@ import org.hibernate.SessionFactory; import org.hibernate.criterion.Example; import org.hibernate.metadata.ClassMetadata; +import org.hibernate.proxy.HibernateProxy; import org.hibernate.type.Type; @@ -113,16 +114,7 @@ private void createSubExamples(Criteria crit, Object entity, String[] walkedProperties) { ClassMetadata classMetadata = ExampleTreeUtils.getClassMetadata(entity, sessionFactory); - boolean isIdSet = ExampleTreeUtils.addIdentifierRestriction( - crit, - entity, - classMetadata, - sessionFactory.getCurrentSession()); // BSHD-11 - if (isIdSet) - { - // BSHD-20 if the identifier is set on a property, do not impose further conditions - return; - } + ExampleTreeUtils.addIdentifierRestriction(crit, entity, classMetadata, sessionFactory.getCurrentSession()); // BSHD-11 String path = ExampleTreeUtils.getPath(walkedProperties); Map<String, FilterMetadata> currFilterMetadata = getFilterMetadata(path); @@ -196,6 +188,14 @@ private Example example(Object entity, Set<String> propertiesToExclude) { + if (HibernateProxy.class.isInstance(entity)) + { + // BSHD-19 javassist hibernate proxies do not seem to work with examples (property values are not + // returned) + HibernateProxy proxy = (HibernateProxy) entity; + entity = proxy.getHibernateLazyInitializer().getImplementation(); + } + Example ex = Example.create(entity); ex.setPropertySelector(new ExcludeBackrefPropertySelector(ExampleTreePropertySelectorSupport.NOT_NULL)); // BSHD-15 for (String propertyName : propertiesToExclude) Copied: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOFindIdentifierTest.java (from rev 4203, trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/HibernateDAOFindIdentifierTest.java) =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOFindIdentifierTest.java (rev 0) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOFindIdentifierTest.java 2013-03-15 13:55:23 UTC (rev 4204) @@ -0,0 +1,142 @@ +/** + * + * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) + * + * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * You may obtain a copy of the License at + * + * http://www.gnu.org/licenses/lgpl-2.1.html + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +package it.openutils.hibernate.test; + +import it.openutils.hibernate.example.ExampleTree; +import it.openutils.hibernate.test.dao.FooDAO; +import it.openutils.hibernate.test.model.Bar; +import it.openutils.hibernate.test.model.Foo; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.testng.AbstractTransactionalTestNGSpringContextTests; +import org.testng.Assert; +import org.testng.annotations.AfterClass; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + + +/** + * @author gcatania + */ +@ContextConfiguration(locations = "/spring-tests.xml") +public class HibernateDAOFindIdentifierTest extends AbstractTransactionalTestNGSpringContextTests +{ + + @Autowired + private FooDAO fooDAO; + + @BeforeClass + protected final void preloadData() + { + executeSqlScript("/preload-data.sql", false); + } + + @AfterClass + protected final void cleanupData() + { + super.deleteFromTables("foo", "bar"); + } + + private List<Foo> searchFoos(Long barId, String barStr, Long fooId, String fooStr) + { + Bar barFilter = new Bar(); + barFilter.setId(barId); + barFilter.setS(barStr); + Foo fooFilter = new Foo(); + fooFilter.setId(fooId); + fooFilter.setBar(barFilter); + fooFilter.setS(fooStr); + return fooDAO.findFiltered(fooFilter); + } + + private Foo findFoo(Long barId, String barStr, Long fooId, String fooStr) + { + List<Foo> found = searchFoos(barId, barStr, fooId, fooStr); + Assert.assertEquals(found.size(), 1); + return found.get(0); + } + + private void dontFindFoo(Long barId, String barStr, Long fooId, String fooStr) + { + List<Foo> found = searchFoos(barId, barStr, fooId, fooStr); + Assert.assertEquals(found.size(), 0); + } + + @Test + public void testFindWithParentId() + { + Foo foundFoo = findFoo(1L, null, null, "fooX_X"); + Assert.assertEquals(foundFoo.getId().longValue(), 3L); + } + + @Test + public void testFindWithParentProperty() + { + Foo foundFoo = findFoo(null, "bar1", null, "fooX_X"); + Assert.assertEquals(foundFoo.getId().longValue(), 3L); + } + + @Test + public void testDontFindWithParentId() + { + dontFindFoo(1L, null, null, "foo2_1"); + } + + @Test + public void testDontFindWithParentProperty() + { + dontFindFoo(null, "bar1", null, "foo2_1"); + } + + @Test + public void testFindWithBothParentIdAndPropertyKeepingInMindTheMagicFlagIsDisabled() + { + List<Foo> foundFoos = searchFoos(2L, "bar1", null, null); + Assert.assertEquals(foundFoos.size(), 3); + for (Foo foo : foundFoos) + { + Assert.assertEquals(foo.getBar().getId().longValue(), 2L); + } + } + + @Test + public void testDontFindWithBothParentIdAndPropertyKeepingInMindTheMagicFlagIsEnabled() + { + Bar barFilter = new Bar(); + barFilter.setId(2L); + barFilter.setS("bar1"); + Foo fooFilter = new Foo(); + fooFilter.setBar(barFilter); + ExampleTree et = new ExampleTree(fooFilter); + et.enableJointPropertyAndIdentifierFiltering(); + List<Foo> foundFoos = fooDAO.findFiltered(et); + Assert.assertEquals(foundFoos.size(), 0); + } + +} Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOLazyLoadTest.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOLazyLoadTest.java 2013-03-14 14:25:36 UTC (rev 4203) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOLazyLoadTest.java 2013-03-15 13:55:23 UTC (rev 4204) @@ -36,6 +36,7 @@ import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.testng.AbstractTransactionalTestNGSpringContextTests; import org.testng.Assert; +import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -59,6 +60,12 @@ executeSqlScript("/preload-data.sql", false); } + @AfterClass + protected final void cleanupData() + { + super.deleteFromTables("foo", "bar"); + } + private List<Foo> findFoo(String s, Bar bar) { Foo filter = new Foo(); 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:38:36
|
Revision: 4574 http://openutils.svn.sourceforge.net/openutils/?rev=4574&view=rev Author: gcatania Date: 2014-05-22 09:38:30 +0000 (Thu, 22 May 2014) Log Message: ----------- Merged revisions 4572-4573 via svnmerge from svn+ssh://gca...@sv.../p/openutils/code/trunk/openutils-bshd5 ........ r4572 | gcatania | 2014-05-22 11:20:59 +0200 (gio, 22 mag 2014) | 1 line BSHD-21 fix performance problems with find filtered first ........ r4573 | gcatania | 2014-05-22 11:22:26 +0200 (gio, 22 mag 2014) | 1 line add missing override annotations, ignore static modifier warnings ........ Revision Links: -------------- http://openutils.svn.sourceforge.net/openutils/?rev=4572&view=rev http://openutils.svn.sourceforge.net/openutils/?rev=4573&view=rev Modified Paths: -------------- branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java Property Changed: ---------------- branches/openutils-bshd5-backport/ Index: branches/openutils-bshd5-backport =================================================================== --- branches/openutils-bshd5-backport 2014-05-22 09:22:26 UTC (rev 4573) +++ branches/openutils-bshd5-backport 2014-05-22 09:38:30 UTC (rev 4574) Property changes on: branches/openutils-bshd5-backport ___________________________________________________________________ Modified: svnmerge-integrated ## -1 +1 ## -/trunk/openutils-bshd5:1-4040,4042-4056,4058-4092,4095-4096,4098-4195,4197-4203 +/trunk/openutils-bshd5:1-4040,4042-4056,4058-4092,4095-4096,4098-4195,4197-4203,4572-4573 \ No newline at end of property Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2014-05-22 09:22:26 UTC (rev 4573) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2014-05-22 09:38:30 UTC (rev 4574) @@ -31,7 +31,6 @@ import java.io.Serializable; import java.sql.SQLException; -import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; @@ -110,6 +109,7 @@ /** * {@inheritDoc} */ + @Override public List<T> findAll() { return getThis().find(Collections.<Criterion> emptyList(), getDefaultOrder()); @@ -118,6 +118,7 @@ /** * {@inheritDoc} */ + @Override public List<T> findAll(Order... orders) { @@ -127,6 +128,7 @@ /** * {@inheritDoc} */ + @Override public List<T> find(final List< ? extends Criterion> criteria, final Order... orders) { return (List<T>) getHibernateTemplate().execute(new HibernateCallback() @@ -157,6 +159,7 @@ /** * {@inheritDoc} */ + @Override public List<T> find(String query) { return getHibernateTemplate().find(query); @@ -165,14 +168,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 (List<T>) getHibernateTemplate().execute(new HibernateCallback() @@ -189,6 +194,7 @@ /** * {@inheritDoc} */ + @Override public List<T> findFiltered(T filter) { return getThis().findFiltered(defaultExample(filter), Integer.MAX_VALUE, 0, getDefaultOrder()); @@ -197,6 +203,7 @@ /** * {@inheritDoc} */ + @Override public List<T> findFiltered(ExampleTree exampleTree) { return getThis().findFiltered(exampleTree, Integer.MAX_VALUE, 0, getDefaultOrder()); @@ -205,6 +212,7 @@ /** * {@inheritDoc} */ + @Override public List<T> findFiltered(T filter, Order... orders) { return getThis().findFiltered(defaultExample(filter), Integer.MAX_VALUE, 0, orders); @@ -213,6 +221,7 @@ /** * {@inheritDoc} */ + @Override public List<T> findFiltered(ExampleTree exampleTree, Order... orders) { return getThis().findFiltered(exampleTree, Integer.MAX_VALUE, 0, orders); @@ -221,6 +230,7 @@ /** * {@inheritDoc} */ + @Override public List<T> findFiltered(T filter, int maxResults, int page) { return getThis().findFiltered(defaultExample(filter), maxResults, page, getDefaultOrder()); @@ -229,6 +239,7 @@ /** * {@inheritDoc} */ + @Override public List<T> findFiltered(ExampleTree exampleTree, int maxResults, int page) { return getThis().findFiltered(exampleTree, maxResults, page, getDefaultOrder()); @@ -238,6 +249,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, FilterMetadata> metadata) { @@ -254,6 +266,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, FilterMetadata> metadata, int maxResults, int page) { @@ -269,48 +282,61 @@ /** * {@inheritDoc} */ + @Override public T findFilteredFirst(T filter) { - return getFirstInCollection(findFiltered(filter)); + return findFilteredFirst(defaultExample(filter)); } /** * {@inheritDoc} */ + @Override public T findFilteredFirst(ExampleTree exampleTree) { - return getFirstInCollection(findFiltered(exampleTree)); + return findFilteredFirst(exampleTree, new Order[0]); } /** * {@inheritDoc} */ + @Override 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) + @Override + public T findFilteredFirst(T filter, List<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<Criterion> criteria) + @Override + 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; } /** * {@inheritDoc} */ + @Override public T load(K key) { T result = (T) getHibernateTemplate().load(getReferenceClass(), key); @@ -321,6 +347,8 @@ /** * {@inheritDoc} */ + @Override + @Deprecated public T loadIfAvailable(K key) { T result = (T) getHibernateTemplate().get(getReferenceClass(), key); @@ -335,6 +363,7 @@ /** * {@inheritDoc} */ + @Override public T get(K key) { return (T) getHibernateTemplate().get(getReferenceClass(), key); @@ -343,6 +372,7 @@ /** * {@inheritDoc} */ + @Override public K save(T obj) { return (K) getHibernateTemplate().save(obj); @@ -351,6 +381,7 @@ /** * {@inheritDoc} */ + @Override public void update(T obj) { getHibernateTemplate().update(obj); @@ -359,6 +390,7 @@ /** * {@inheritDoc} */ + @Override public void saveOrUpdate(T obj) { getHibernateTemplate().saveOrUpdate(obj); @@ -367,6 +399,7 @@ /** * {@inheritDoc} */ + @Override public boolean delete(final K key) { return (Boolean) getHibernateTemplate().execute(new HibernateCallback() @@ -383,6 +416,7 @@ /** * {@inheritDoc} */ + @Override public void refresh(T obj) { getHibernateTemplate().refresh(obj); @@ -391,6 +425,7 @@ /** * {@inheritDoc} */ + @Override public void evict(T obj) { getHibernateTemplate().evict(obj); @@ -399,6 +434,7 @@ /** * {@inheritDoc} */ + @Override public T merge(final T obj) { return (T) getHibernateTemplate().execute(new HibernateCallback() @@ -415,6 +451,7 @@ /** * {@inheritDoc} */ + @Override @Deprecated public List<T> findAll(Order[] orders, List<Criterion> criteria) { @@ -424,6 +461,7 @@ /** * {@inheritDoc} */ + @Override public List<T> findFiltered(ExampleTree exampleTree, int maxResults, int page, Order... orders) { return (List<T>) getHibernateTemplate().execute( @@ -433,6 +471,7 @@ /** * {@inheritDoc} */ + @Override public List<Object> findFilteredProperties(T filter, int maxResults, int page, List<String> properties, Order... orders) { @@ -442,6 +481,7 @@ /** * {@inheritDoc} */ + @Override public List<Object> findFilteredProperties(ExampleTree exampleTree, int maxResults, int page, List<String> properties, Order... orders) { @@ -453,6 +493,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, FilterMetadata> metadata, int maxResults, int page) @@ -470,6 +511,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, FilterMetadata> metadata, int maxResults, int page, Order... orders) @@ -481,6 +523,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, FilterMetadata> metadata, int maxResults, int page, List<Criterion> criteria, Order... orders) @@ -501,6 +544,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, FilterMetadata> metadata, int maxResults, int page, List<Criterion> criteria) @@ -512,6 +556,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<?> findFilteredProperties(T filter, Order[] orders, Map<String, FilterMetadata> metadata, int maxResults, int page, List<Criterion> criteria, List<String> properties) @@ -562,6 +607,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]; @@ -692,6 +738,7 @@ * @deprecated this method uses the deprecated class {@link FilterMetadata}, use {@link #defaultExample(Object)} * instead */ + @SuppressWarnings("static-method") @Deprecated protected Map<String, FilterMetadata> getDefaultFilterMetadata() { @@ -699,22 +746,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-07-04 14:51:07
|
Revision: 4578 http://openutils.svn.sourceforge.net/openutils/?rev=4578&view=rev Author: gcatania Date: 2014-07-04 14:50:58 +0000 (Fri, 04 Jul 2014) Log Message: ----------- Merged revisions 4577 via svnmerge from svn+ssh://gca...@sv.../p/openutils/code/trunk/openutils-bshd5 ........ r4577 | gcatania | 2014-07-04 16:43:33 +0200 (ven, 04 lug 2014) | 1 line BSHD-24 dependency updates ........ Revision Links: -------------- http://openutils.svn.sourceforge.net/openutils/?rev=4577&view=rev Modified Paths: -------------- branches/openutils-bshd5-backport/pom.xml branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java branches/openutils-bshd5-backport/src/test/resources/spring-tests.xml Property Changed: ---------------- branches/openutils-bshd5-backport/ Index: branches/openutils-bshd5-backport =================================================================== --- branches/openutils-bshd5-backport 2014-07-04 14:43:33 UTC (rev 4577) +++ branches/openutils-bshd5-backport 2014-07-04 14:50:58 UTC (rev 4578) Property changes on: branches/openutils-bshd5-backport ___________________________________________________________________ Modified: svnmerge-integrated ## -1 +1 ## -/trunk/openutils-bshd5:1-4040,4042-4056,4058-4092,4095-4096,4098-4195,4197-4203,4572-4573 +/trunk/openutils-bshd5:1-4040,4042-4056,4058-4092,4095-4096,4098-4195,4197-4203,4572-4573,4577 \ No newline at end of property Modified: branches/openutils-bshd5-backport/pom.xml =================================================================== --- branches/openutils-bshd5-backport/pom.xml 2014-07-04 14:43:33 UTC (rev 4577) +++ branches/openutils-bshd5-backport/pom.xml 2014-07-04 14:50:58 UTC (rev 4578) @@ -56,7 +56,7 @@ <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> - <version>2.3.7</version> + <version>2.5.0</version> <extensions>true</extensions> </plugin> </plugins> @@ -125,14 +125,14 @@ </exclusions> </dependency> <dependency> - <groupId>commons-collections</groupId> - <artifactId>commons-collections</artifactId> - <version>3.2.1</version> + <groupId>org.apache.commons</groupId> + <artifactId>commons-collections4</artifactId> + <version>4.0</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> - <version>3.1</version> + <version>3.3.2</version> </dependency> <dependency> <groupId>org.javassist</groupId> @@ -141,10 +141,16 @@ </dependency> <!-- test dependencies --> <dependency> - <groupId>commons-dbcp</groupId> - <artifactId>commons-dbcp</artifactId> - <version>1.2.1</version> + <groupId>org.apache.commons</groupId> + <artifactId>commons-dbcp2</artifactId> + <version>2.0.1</version> <scope>test</scope> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>org.springframework</groupId> @@ -161,7 +167,7 @@ <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> - <version>6.5.2</version> + <version>6.8.8</version> <scope>test</scope> </dependency> <dependency> Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2014-07-04 14:43:33 UTC (rev 4577) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2014-07-04 14:50:58 UTC (rev 4578) @@ -36,8 +36,8 @@ 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.collections4.CollectionUtils; +import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; import org.hibernate.Criteria; import org.hibernate.Hibernate; Modified: branches/openutils-bshd5-backport/src/test/resources/spring-tests.xml =================================================================== --- branches/openutils-bshd5-backport/src/test/resources/spring-tests.xml 2014-07-04 14:43:33 UTC (rev 4577) +++ branches/openutils-bshd5-backport/src/test/resources/spring-tests.xml 2014-07-04 14:50:58 UTC (rev 4578) @@ -10,7 +10,7 @@ http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <context:annotation-config /> <context:component-scan base-package="it.openutils.hibernate.test" /> - <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> + <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${hibernate.driver}" /> <property name="url" value="${hibernate.url}" /> <property name="username" value="${hibernate.user}" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gca...@us...> - 2014-07-04 14:52:47
|
Revision: 4579 http://openutils.svn.sourceforge.net/openutils/?rev=4579&view=rev Author: gcatania Date: 2014-07-04 14:52:38 +0000 (Fri, 04 Jul 2014) Log Message: ----------- Merged revisions 4575 via svnmerge from svn+ssh://gca...@sv.../p/openutils/code/trunk/openutils-bshd5 ........ r4575 | gcatania | 2014-05-22 11:50:40 +0200 (gio, 22 mag 2014) | 1 line BSHD-22 update spring jira link ........ Revision Links: -------------- http://openutils.svn.sourceforge.net/openutils/?rev=4575&view=rev Modified Paths: -------------- branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java Property Changed: ---------------- branches/openutils-bshd5-backport/ Index: branches/openutils-bshd5-backport =================================================================== --- branches/openutils-bshd5-backport 2014-07-04 14:50:58 UTC (rev 4578) +++ branches/openutils-bshd5-backport 2014-07-04 14:52:38 UTC (rev 4579) Property changes on: branches/openutils-bshd5-backport ___________________________________________________________________ Modified: svnmerge-integrated ## -1 +1 ## -/trunk/openutils-bshd5:1-4040,4042-4056,4058-4092,4095-4096,4098-4195,4197-4203,4572-4573,4577 +/trunk/openutils-bshd5:1-4040,4042-4056,4058-4092,4095-4096,4098-4195,4197-4203,4572-4573,4575,4577 \ No newline at end of property Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2014-07-04 14:50:58 UTC (rev 4578) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2014-07-04 14:52:38 UTC (rev 4579) @@ -762,7 +762,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...> - 2014-07-04 14:57:25
|
Revision: 4580 http://openutils.svn.sourceforge.net/openutils/?rev=4580&view=rev Author: gcatania Date: 2014-07-04 14:57:13 +0000 (Fri, 04 Jul 2014) Log Message: ----------- Merged revisions 4383 via svnmerge from svn+ssh://gca...@sv.../p/openutils/code/trunk/openutils-bshd5 ........ r4383 | fgiust | 2013-10-19 14:10:45 +0200 (sab, 19 ott 2013) | 1 line upgrade parent pom (maven 3.1 and java 6 required) ........ Revision Links: -------------- http://openutils.svn.sourceforge.net/openutils/?rev=4383&view=rev Modified Paths: -------------- branches/openutils-bshd5-backport/pom.xml branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAO.java branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTreeUtils.java branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadata.java branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/paging/PaginatedResult.java branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/paging/PaginatedResultImpl.java branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/paging/PaginatedResultUtils.java branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/selectors/ExcludeBackrefPropertySelector.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/EntityBuilder.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOFilterMetadataTest.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOFindIdentifierTest.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOHierarchyTest.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOLazyLoadTest.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOPersistenceTest.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/BarDAO.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/CarDAO.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/CarMakerDAO.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/FooDAO.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/PersonDAO.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/StickerDAO.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Address.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Bar.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Car.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/CarMaker.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/CarModel.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/CurrencyAmount.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Designer.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Employee.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Foo.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/FullName.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Owner.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Person.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Sticker.java branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Title.java Property Changed: ---------------- branches/openutils-bshd5-backport/ Index: branches/openutils-bshd5-backport =================================================================== --- branches/openutils-bshd5-backport 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport 2014-07-04 14:57:13 UTC (rev 4580) Property changes on: branches/openutils-bshd5-backport ___________________________________________________________________ Modified: svnmerge-integrated ## -1 +1 ## -/trunk/openutils-bshd5:1-4040,4042-4056,4058-4092,4095-4096,4098-4195,4197-4203,4572-4573,4575,4577 +/trunk/openutils-bshd5:1-4040,4042-4056,4058-4092,4095-4096,4098-4195,4197-4203,4383,4572-4573,4575,4577 \ No newline at end of property Modified: branches/openutils-bshd5-backport/pom.xml =================================================================== --- branches/openutils-bshd5-backport/pom.xml 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/pom.xml 2014-07-04 14:57:13 UTC (rev 4580) @@ -4,7 +4,7 @@ <groupId>net.sourceforge.openutils</groupId> <artifactId>openutils-parent</artifactId> <relativePath>../openutils-parent</relativePath> - <version>1.12</version> + <version>1.14</version> </parent> <artifactId>openutils-bshd5</artifactId> <packaging>bundle</packaging> Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAO.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAO.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAO.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.dao.hibernate; import it.openutils.hibernate.example.ExampleTree; Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -1,8 +1,8 @@ - /** +/** * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.dao.hibernate; import it.openutils.hibernate.example.ExampleTree; Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.example; import it.openutils.hibernate.selectors.ExcludeBackrefPropertySelector; Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTreeUtils.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTreeUtils.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTreeUtils.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.example; import java.lang.reflect.Array; Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadata.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadata.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadata.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.example; import org.hibernate.Criteria; Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.example; import it.openutils.hibernate.selectors.ExcludeBackrefPropertySelector; Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/paging/PaginatedResult.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/paging/PaginatedResult.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/paging/PaginatedResult.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.paging; import java.io.Serializable; Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/paging/PaginatedResultImpl.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/paging/PaginatedResultImpl.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/paging/PaginatedResultImpl.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.paging; import java.util.Collection; Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/paging/PaginatedResultUtils.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/paging/PaginatedResultUtils.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/paging/PaginatedResultUtils.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.paging; import java.util.Collection; Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/selectors/ExcludeBackrefPropertySelector.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/selectors/ExcludeBackrefPropertySelector.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/selectors/ExcludeBackrefPropertySelector.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.selectors; import java.io.Serializable; Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/EntityBuilder.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/EntityBuilder.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/EntityBuilder.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.test; import it.openutils.hibernate.test.model.Address; Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOFilterMetadataTest.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOFilterMetadataTest.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOFilterMetadataTest.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.test; import static it.openutils.hibernate.test.EntityBuilder.bobsPrius; Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOFindIdentifierTest.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOFindIdentifierTest.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOFindIdentifierTest.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.test; import it.openutils.hibernate.example.ExampleTree; Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOHierarchyTest.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOHierarchyTest.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOHierarchyTest.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.test; import it.openutils.dao.hibernate.HibernateDAOImpl; Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOLazyLoadTest.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOLazyLoadTest.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOLazyLoadTest.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.test; import it.openutils.hibernate.test.dao.BarDAO; Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOPersistenceTest.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOPersistenceTest.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOPersistenceTest.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.test; import static it.openutils.hibernate.test.EntityBuilder.alice; Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/BarDAO.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/BarDAO.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/BarDAO.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.test.dao; import it.openutils.dao.hibernate.HibernateDAO; Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/CarDAO.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/CarDAO.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/CarDAO.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.test.dao; import it.openutils.dao.hibernate.HibernateDAO; Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/CarMakerDAO.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/CarMakerDAO.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/CarMakerDAO.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.test.dao; import it.openutils.dao.hibernate.HibernateDAO; Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/FooDAO.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/FooDAO.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/FooDAO.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.test.dao; import it.openutils.dao.hibernate.HibernateDAO; Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/PersonDAO.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/PersonDAO.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/PersonDAO.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.test.dao; import it.openutils.dao.hibernate.HibernateDAO; Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/StickerDAO.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/StickerDAO.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/dao/StickerDAO.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.test.dao; import it.openutils.dao.hibernate.HibernateDAO; Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Address.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Address.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Address.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.test.model; import javax.persistence.Column; Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Bar.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Bar.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Bar.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.test.model; import javax.persistence.Entity; Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Car.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Car.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Car.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.test.model; import java.util.ArrayList; Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/CarMaker.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/CarMaker.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/CarMaker.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.test.model; import java.util.ArrayList; Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/CarModel.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/CarModel.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/CarModel.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.test.model; import javax.persistence.CascadeType; Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/CurrencyAmount.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/CurrencyAmount.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/CurrencyAmount.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.test.model; import javax.persistence.Embeddable; Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Designer.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Designer.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Designer.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.test.model; import java.util.HashSet; Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Employee.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Employee.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Employee.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.test.model; import java.util.Calendar; Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Foo.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Foo.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Foo.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.test.model; import javax.persistence.Column; Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/FullName.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/FullName.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/FullName.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.test.model; import javax.persistence.Column; Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Owner.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Owner.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Owner.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.test.model; import java.util.HashSet; Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Person.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Person.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Person.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.test.model; import java.util.Calendar; Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Sticker.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Sticker.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Sticker.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.test.model; import javax.persistence.Column; Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Title.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Title.java 2014-07-04 14:52:38 UTC (rev 4579) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/model/Title.java 2014-07-04 14:57:13 UTC (rev 4580) @@ -2,7 +2,7 @@ * * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) * - * Copyright(C) 2005-2012, Openmind S.r.l. http://www.openmindonline.it + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it * * * This library is free software; you can redistribute it and/or @@ -22,7 +22,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - package it.openutils.hibernate.test.model; /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gca...@us...> - 2014-08-01 17:03:11
|
Revision: 4586 http://openutils.svn.sourceforge.net/openutils/?rev=4586&view=rev Author: gcatania Date: 2014-08-01 17:03:08 +0000 (Fri, 01 Aug 2014) Log Message: ----------- Merged revisions 4585 via svnmerge from svn+ssh://gca...@sv.../p/openutils/code/trunk/openutils-bshd5 ........ r4585 | gcatania | 2014-08-01 19:01:13 +0200 (ven, 01 ago 2014) | 1 line BSHD-25 improve error reporting in getValueFromCollection() ........ Revision Links: -------------- http://openutils.svn.sourceforge.net/openutils/?rev=4585&view=rev Modified Paths: -------------- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTreeUtils.java branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java Property Changed: ---------------- branches/openutils-bshd5-backport/ Index: branches/openutils-bshd5-backport =================================================================== --- branches/openutils-bshd5-backport 2014-08-01 17:01:13 UTC (rev 4585) +++ branches/openutils-bshd5-backport 2014-08-01 17:03:08 UTC (rev 4586) Property changes on: branches/openutils-bshd5-backport ___________________________________________________________________ Modified: svnmerge-integrated ## -1 +1 ## -/trunk/openutils-bshd5:1-4040,4042-4056,4058-4092,4095-4096,4098-4195,4197-4203,4383,4572-4573,4575,4577 +/trunk/openutils-bshd5:1-4040,4042-4056,4058-4092,4095-4096,4098-4195,4197-4203,4383,4572-4573,4575,4577,4585 \ No newline at end of property Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java 2014-08-01 17:01:13 UTC (rev 4585) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java 2014-08-01 17:03:08 UTC (rev 4586) @@ -310,7 +310,7 @@ Object propertyValue = classMetadata.getPropertyValue(entity, propertyName, entityMode); if (propertyType.isCollectionType()) { - propertyValue = ExampleTreeUtils.getValueFromCollection(propertyValue); + propertyValue = ExampleTreeUtils.getValueFromCollection(propertyName, propertyValue); } if (propertyValue == null) { @@ -369,7 +369,7 @@ * workaround to {@link Example} not exposing internal property selectors * @author gcatania */ -@SuppressWarnings({"serial", "static-method"}) +@SuppressWarnings({"serial", "static-method" }) class ExampleTreePropertySelectorSupport { @@ -382,6 +382,7 @@ static final class AllPropertySelector implements PropertySelector { + @Override public boolean include(Object object, String propertyName, Type type) { return true; @@ -396,6 +397,7 @@ static final class NotNullPropertySelector implements PropertySelector { + @Override public boolean include(Object object, String propertyName, Type type) { return object != null; @@ -410,6 +412,7 @@ static final class NotNullOrZeroPropertySelector implements PropertySelector { + @Override public boolean include(Object object, String propertyName, Type type) { return object != null && (!(object instanceof Number) || ((Number) object).longValue() != 0); Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTreeUtils.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTreeUtils.java 2014-08-01 17:01:13 UTC (rev 4585) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTreeUtils.java 2014-08-01 17:03:08 UTC (rev 4586) @@ -25,6 +25,7 @@ package it.openutils.hibernate.example; import java.lang.reflect.Array; +import java.text.MessageFormat; import java.util.Arrays; import java.util.Collection; @@ -88,13 +89,15 @@ } /** - * retrieves a value from a collection + * retrieves a value from a collection property + * @param propertyName the property name (will be reported in the exception) * @param collectionValue the collection * @return a value * @see http://opensource2.atlassian.com/projects/hibernate/browse/HHH-879 * @throws IllegalArgumentException if the input collection contains more than one value */ - public static Object getValueFromCollection(Object collectionValue) throws IllegalArgumentException + public static Object getValueFromCollection(String propertyName, Object collectionValue) + throws IllegalArgumentException { if (collectionValue != null) { @@ -108,8 +111,10 @@ } if (size > 1) { - throw new IllegalArgumentException("More than one element in filter collection is unsupported.\n" - + coll); + throw new IllegalArgumentException(MessageFormat.format( + "More than one element in filter collection is unsupported.\nproperty: {0}, value: {1}", + propertyName, + coll)); } } Class< ? extends Object> clazz = collectionValue.getClass(); @@ -122,7 +127,13 @@ } if (length > 1) { - throw new IllegalArgumentException("More than one element in filter array is unsupported."); + throw new IllegalArgumentException( + MessageFormat + .format( + "More than one element in filter array is unsupported.\nproperty: {0}, value: {1} - length: {2}", + propertyName, + collectionValue, + length)); } } // TODO other cases? Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java 2014-08-01 17:01:13 UTC (rev 4585) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/FilterMetadataSupport.java 2014-08-01 17:03:08 UTC (rev 4586) @@ -145,7 +145,7 @@ if (propertyType.isCollectionType()) { - propertyValue = ExampleTreeUtils.getValueFromCollection(propertyValue); + propertyValue = ExampleTreeUtils.getValueFromCollection(propertyName, propertyValue); } if (propertyValue == null) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gca...@us...> - 2014-08-01 17:21:44
|
Revision: 4589 http://openutils.svn.sourceforge.net/openutils/?rev=4589&view=rev Author: gcatania Date: 2014-08-01 17:21:35 +0000 (Fri, 01 Aug 2014) Log Message: ----------- Merged revisions 4587 via svnmerge from svn+ssh://gca...@sv.../p/openutils/code/trunk/openutils-bshd5 ........ r4587 | gcatania | 2014-08-01 19:09:42 +0200 (ven, 01 ago 2014) | 1 line BSHD-26 improve test coverage ........ Revision Links: -------------- http://openutils.svn.sourceforge.net/openutils/?rev=4587&view=rev Modified Paths: -------------- branches/openutils-bshd5-backport/pom.xml branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/example/ExampleTreeUtilsTest.java Added Paths: ----------- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/example/ Property Changed: ---------------- branches/openutils-bshd5-backport/ Index: branches/openutils-bshd5-backport =================================================================== --- branches/openutils-bshd5-backport 2014-08-01 17:14:45 UTC (rev 4588) +++ branches/openutils-bshd5-backport 2014-08-01 17:21:35 UTC (rev 4589) Property changes on: branches/openutils-bshd5-backport ___________________________________________________________________ Modified: svnmerge-integrated ## -1 +1 ## -/trunk/openutils-bshd5:1-4040,4042-4056,4058-4092,4095-4096,4098-4195,4197-4203,4383,4572-4573,4575,4577,4585 +/trunk/openutils-bshd5:1-4040,4042-4056,4058-4092,4095-4096,4098-4195,4197-4203,4383,4572-4573,4575,4577,4585,4587 \ No newline at end of property Modified: branches/openutils-bshd5-backport/pom.xml =================================================================== --- branches/openutils-bshd5-backport/pom.xml 2014-08-01 17:14:45 UTC (rev 4588) +++ branches/openutils-bshd5-backport/pom.xml 2014-08-01 17:21:35 UTC (rev 4589) @@ -190,6 +190,12 @@ </exclusion> </exclusions> </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-all</artifactId> + <version>1.9.5</version> + <scope>test</scope> + </dependency> </dependencies> <properties> <slf4j.version>1.6.5</slf4j.version> Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/example/ExampleTreeUtilsTest.java =================================================================== --- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/example/ExampleTreeUtilsTest.java 2014-08-01 17:09:42 UTC (rev 4587) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/example/ExampleTreeUtilsTest.java 2014-08-01 17:21:35 UTC (rev 4589) @@ -20,10 +20,11 @@ import org.apache.commons.lang3.StringUtils; import org.hamcrest.Matcher; import org.hibernate.Criteria; +import org.hibernate.EntityMode; +import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.criterion.Criterion; import org.hibernate.criterion.Restrictions; -import org.hibernate.event.spi.EventSource; import org.hibernate.metadata.ClassMetadata; import org.mockito.ArgumentMatcher; import org.testng.Assert; @@ -135,16 +136,20 @@ Assert.assertEquals(getPath(new String[]{"a", "b", "c" }), "a.b.c"); } + /** + * TODO also test HibernateProxy case + */ @Test public void testAddIdentifierRestrictionWhenAdded() { Criteria crit = mock(Criteria.class); Object entity = new Object(); // mock EventSource because it needs to implement both Session and SessionImplementor - EventSource sess = mock(EventSource.class); + Session sess = mock(Session.class); ClassMetadata clm = mock(ClassMetadata.class); + when(sess.getEntityMode()).thenReturn(EntityMode.POJO); when(clm.getIdentifierPropertyName()).thenReturn("id"); - when(clm.getIdentifier(entity, sess)).thenReturn(1); + when(clm.getIdentifier(entity, EntityMode.POJO)).thenReturn(1); boolean added = addIdentifierRestriction(crit, entity, clm, sess); Assert.assertTrue(added, "identifier restriction not added"); @@ -168,8 +173,7 @@ { Criteria crit = mock(Criteria.class); Object entity = new Object(); - // mock EventSource because it needs to implement both Session and SessionImplementor - EventSource sess = mock(EventSource.class); + Session sess = mock(Session.class); ClassMetadata clm = mock(ClassMetadata.class); when(clm.getIdentifierPropertyName()).thenReturn(null); @@ -182,11 +186,11 @@ { Criteria crit = mock(Criteria.class); Object entity = new Object(); - // mock EventSource because it needs to implement both Session and SessionImplementor - EventSource sess = mock(EventSource.class); + Session sess = mock(Session.class); ClassMetadata clm = mock(ClassMetadata.class); + when(sess.getEntityMode()).thenReturn(EntityMode.POJO); when(clm.getIdentifierPropertyName()).thenReturn("id"); - when(clm.getIdentifier(entity, sess)).thenReturn(null); + when(clm.getIdentifier(entity, EntityMode.POJO)).thenReturn(null); boolean added = addIdentifierRestriction(crit, entity, clm, sess); Assert.assertFalse(added, "identifier restriction added"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gca...@us...> - 2014-08-01 17:23:13
|
Revision: 4590 http://openutils.svn.sourceforge.net/openutils/?rev=4590&view=rev Author: gcatania Date: 2014-08-01 17:23:04 +0000 (Fri, 01 Aug 2014) Log Message: ----------- Merged revisions 4588 via svnmerge from svn+ssh://gca...@sv.../p/openutils/code/trunk/openutils-bshd5 ........ r4588 | gcatania | 2014-08-01 19:14:45 +0200 (ven, 01 ago 2014) | 1 line BSHD-26 fix license header ........ Revision Links: -------------- http://openutils.svn.sourceforge.net/openutils/?rev=4588&view=rev Modified Paths: -------------- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/example/ExampleTreeUtilsTest.java Property Changed: ---------------- branches/openutils-bshd5-backport/ Index: branches/openutils-bshd5-backport =================================================================== --- branches/openutils-bshd5-backport 2014-08-01 17:21:35 UTC (rev 4589) +++ branches/openutils-bshd5-backport 2014-08-01 17:23:04 UTC (rev 4590) Property changes on: branches/openutils-bshd5-backport ___________________________________________________________________ Modified: svnmerge-integrated ## -1 +1 ## -/trunk/openutils-bshd5:1-4040,4042-4056,4058-4092,4095-4096,4098-4195,4197-4203,4383,4572-4573,4575,4577,4585,4587 +/trunk/openutils-bshd5:1-4040,4042-4056,4058-4092,4095-4096,4098-4195,4197-4203,4383,4572-4573,4575,4577,4585,4587-4588 \ No newline at end of property Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/example/ExampleTreeUtilsTest.java =================================================================== --- branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/example/ExampleTreeUtilsTest.java 2014-08-01 17:21:35 UTC (rev 4589) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/example/ExampleTreeUtilsTest.java 2014-08-01 17:23:04 UTC (rev 4590) @@ -1,5 +1,26 @@ /** - * Copyright (c) Energeya LLC. All rights reserved. http://www.energeya.com + * + * openutils base Spring-Hibernate DAO (http://www.openmindlab.com/lab/products/bshd5.html) + * + * Copyright(C) 2005-2013, Openmind S.r.l. http://www.openmindonline.it + * + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * You may obtain a copy of the License at + * + * http://www.gnu.org/licenses/lgpl-2.1.html + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ package it.openutils.hibernate.example; 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:48:05
|
Revision: 4625 http://openutils.svn.sourceforge.net/openutils/?rev=4625&view=rev Author: gcatania Date: 2015-04-17 08:48:02 +0000 (Fri, 17 Apr 2015) Log Message: ----------- Merged revisions 4624 via svnmerge from svn+ssh://gca...@sv.../p/openutils/code/trunk/openutils-bshd5 ........ r4624 | gcatania | 2015-04-17 10:43:39 +0200 (ven, 17 apr 2015) | 1 line BSHD-27 regression after refactoring - distinct root entity transformer got lost ........ Revision Links: -------------- http://openutils.svn.sourceforge.net/openutils/?rev=4624&view=rev Modified Paths: -------------- branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java Property Changed: ---------------- branches/openutils-bshd5-backport/ Index: branches/openutils-bshd5-backport =================================================================== --- branches/openutils-bshd5-backport 2015-04-17 08:43:39 UTC (rev 4624) +++ branches/openutils-bshd5-backport 2015-04-17 08:48:02 UTC (rev 4625) Property changes on: branches/openutils-bshd5-backport ___________________________________________________________________ Modified: svnmerge-integrated ## -1 +1 ## -/trunk/openutils-bshd5:1-4040,4042-4056,4058-4092,4095-4096,4098-4195,4197-4203,4383,4572-4573,4575,4577,4585,4587-4588 +/trunk/openutils-bshd5:1-4040,4042-4056,4058-4092,4095-4096,4098-4195,4197-4239,4241-4409,4411-4452,4455,4457-4570,4572-4624 \ No newline at end of property Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java =================================================================== --- branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2015-04-17 08:43:39 UTC (rev 4624) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2015-04-17 08:48:02 UTC (rev 4625) @@ -814,7 +814,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) @@ -847,19 +848,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) { @@ -941,7 +937,7 @@ @Override protected Criteria createCriteria(Session session) { - return exampleTree.create(session); + return exampleTree.create(session).setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); } } @@ -966,12 +962,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. |