From: <gca...@us...> - 2012-05-20 14:27:39
|
Revision: 4039 http://openutils.svn.sourceforge.net/openutils/?rev=4039&view=rev Author: gcatania Date: 2012-05-20 14:27:33 +0000 (Sun, 20 May 2012) Log Message: ----------- backport branch for bshd5 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/test/java/it/openutils/hibernate/test/HibernateDAOPersistenceTest.java Added Paths: ----------- branches/openutils-bshd5-backport/ Modified: branches/openutils-bshd5-backport/pom.xml =================================================================== --- trunk/openutils-bshd5/pom.xml 2012-05-20 14:13:06 UTC (rev 4038) +++ branches/openutils-bshd5-backport/pom.xml 2012-05-20 14:27:33 UTC (rev 4039) @@ -106,7 +106,7 @@ <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> - <version>3.5.6-Final</version> + <version>${hibernate.version}</version> <exclusions> <exclusion> <groupId>cglib</groupId> @@ -125,7 +125,7 @@ <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-annotations</artifactId> - <version>3.5.6-Final</version> + <version>${hibernate.annotations.version}</version> <scope>test</scope> <exclusions> <exclusion> @@ -145,7 +145,7 @@ <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> - <version>1.7.0</version> + <version>1.8.0</version> <exclusions> <exclusion> <groupId>commons-logging</groupId> @@ -166,7 +166,7 @@ <dependency> <groupId>javassist</groupId> <artifactId>javassist</artifactId> - <version>3.4.GA</version> + <version>${javassist.version}</version> </dependency> <!-- test dependencies --> <dependency> @@ -180,12 +180,17 @@ <artifactId>spring-test</artifactId> <version>${spring.version}</version> <scope>test</scope> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> - <version>5.7</version> - <classifier>jdk15</classifier> + <version>5.14.6</version> <scope>test</scope> </dependency> <dependency> @@ -196,6 +201,9 @@ </dependency> </dependencies> <properties> - <spring.version>3.0.0.RELEASE</spring.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> + <javassist.version>3.8.0.GA</javassist.version> </properties> </project> \ No newline at end of file Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java =================================================================== --- trunk/openutils-bshd5/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2012-05-20 14:13:06 UTC (rev 4038) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/dao/hibernate/HibernateDAOImpl.java 2012-05-20 14:27:33 UTC (rev 4039) @@ -64,6 +64,7 @@ * @param <T> Persistence class * @param <K> Object Key */ +@SuppressWarnings("unchecked") public abstract class HibernateDAOImpl<T, K extends Serializable> extends HibernateDaoSupport implements HibernateDAO<T, K> @@ -128,7 +129,7 @@ */ public List<T> find(final List< ? extends Criterion> criteria, final Order... orders) { - return getHibernateTemplate().execute(new HibernateCallback<List<T>>() + return (List<T>) getHibernateTemplate().execute(new HibernateCallback() { @SuppressWarnings("unchecked") @@ -176,7 +177,7 @@ */ public List<T> find(final String query, final Object[] paramValues, final Type[] paramTypes) { - return getHibernateTemplate().execute(new HibernateCallback<List<T>>() + return (List<T>) getHibernateTemplate().execute(new HibernateCallback() { @SuppressWarnings("unchecked") @@ -315,7 +316,7 @@ */ public T load(K key) { - T result = getHibernateTemplate().load(getReferenceClass(), key); + T result = (T) getHibernateTemplate().load(getReferenceClass(), key); Hibernate.initialize(result); return result; } @@ -325,7 +326,7 @@ */ public T loadIfAvailable(K key) { - T result = getHibernateTemplate().get(getReferenceClass(), key); + T result = (T) getHibernateTemplate().get(getReferenceClass(), key); if (result != null) { Hibernate.initialize(result); @@ -339,7 +340,7 @@ */ public T get(K key) { - return getHibernateTemplate().get(getReferenceClass(), key); + return (T) getHibernateTemplate().get(getReferenceClass(), key); } /** @@ -372,7 +373,7 @@ */ public boolean delete(final K key) { - return getHibernateTemplate().execute(new HibernateCallback<Boolean>() + return (Boolean) getHibernateTemplate().execute(new HibernateCallback() { public Boolean doInHibernate(final Session ses) throws HibernateException @@ -404,7 +405,7 @@ */ public T merge(final T obj) { - return getHibernateTemplate().execute(new HibernateCallback<T>() + return (T) getHibernateTemplate().execute(new HibernateCallback() { @SuppressWarnings("unchecked") @@ -430,7 +431,8 @@ */ public List<T> findFiltered(ExampleTree exampleTree, int maxResults, int page, Order... orders) { - return getHibernateTemplate().execute(new ExampleTreeCallback<T>(exampleTree, maxResults, page, orders)); + return (List<T>) getHibernateTemplate().execute( + new ExampleTreeCallback<T>(exampleTree, maxResults, page, orders)); } /** @@ -448,7 +450,7 @@ public List<Object> findFilteredProperties(ExampleTree exampleTree, int maxResults, int page, List<String> properties, Order... orders) { - return getHibernateTemplate().execute( + return (List<Object>) getHibernateTemplate().execute( new ExampleTreePropertiesCallback(exampleTree, maxResults, page, properties, orders)); } @@ -488,7 +490,7 @@ public List<T> findFiltered(T filter, Map<String, ? extends FilterMetadata> metadata, int maxResults, int page, List< ? extends Criterion> criteria, Order... orders) { - return getHibernateTemplate().execute( + return (List<T>) getHibernateTemplate().execute( new LegacySupportCallback<T>(filter, maxResults, page, metadata, criteria, orders)); } @@ -512,7 +514,7 @@ Map<String, ? extends FilterMetadata> metadata, int maxResults, int page, List< ? extends Criterion> criteria, List<String> properties) { - return getHibernateTemplate().execute( + return (List<Object>) getHibernateTemplate().execute( new LegacySupportPropertiesCallback(filter, maxResults, page, metadata, criteria, properties, orders)); } @@ -557,7 +559,7 @@ */ protected List<Object> findByNamedQuery(final String name, final Serializable[] params, final Integer maxResults) { - return getHibernateTemplate().execute(new HibernateCallback<List<Object>>() + return (List<Object>) getHibernateTemplate().execute(new HibernateCallback() { @SuppressWarnings("unchecked") @@ -589,7 +591,7 @@ */ protected List<Object> findByNamedQuery(final String name, final Map<String, ? > params, final Integer maxResults) { - return getHibernateTemplate().execute(new HibernateCallback<List<Object>>() + return (List<Object>) getHibernateTemplate().execute(new HibernateCallback() { @SuppressWarnings("unchecked") @@ -821,7 +823,7 @@ * @author gcatania * @param R the result class */ -class ExampleTreeCallback<R> implements HibernateCallback<List<R>> +class ExampleTreeCallback<R> implements HibernateCallback { private final Order[] orders; Modified: branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java =================================================================== --- trunk/openutils-bshd5/src/main/java/it/openutils/hibernate/example/ExampleTree.java 2012-05-20 14:13:06 UTC (rev 4038) +++ branches/openutils-bshd5-backport/src/main/java/it/openutils/hibernate/example/ExampleTree.java 2012-05-20 14:27:33 UTC (rev 4039) @@ -323,7 +323,8 @@ // 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, si); + Object idValue = classMetadata.getIdentifier(entity, entityMode); if (idValue != null) // TODO should we use property selectors instead? { crit.add(Restrictions.idEq(idValue)); Modified: branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOPersistenceTest.java =================================================================== --- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/HibernateDAOPersistenceTest.java 2012-05-20 14:13:06 UTC (rev 4038) +++ branches/openutils-bshd5-backport/src/test/java/it/openutils/hibernate/test/HibernateDAOPersistenceTest.java 2012-05-20 14:27:33 UTC (rev 4039) @@ -420,6 +420,29 @@ Assert.assertEquals(found.size(), 2); } + /** + * warning: in this hibernate version, retrieval of component properties appears to be problematic: + * + * <pre> + * org.hibernate.QueryException: property does not map to a single column: name + * at org.hibernate.loader.criteria.CriteriaQueryTranslator.getColumn(CriteriaQueryTranslator.java:394) + * at org.hibernate.criterion.PropertyProjection.toSqlString(PropertyProjection.java:64) + * at org.hibernate.criterion.ProjectionList.toSqlString(ProjectionList.java:72) + * at org.hibernate.loader.criteria.CriteriaQueryTranslator.getSelect(CriteriaQueryTranslator.java:333) + * at org.hibernate.loader.criteria.CriteriaJoinWalker.<init>(CriteriaJoinWalker.java:102) + * at org.hibernate.loader.criteria.CriteriaJoinWalker.<init>(CriteriaJoinWalker.java:82) + * at org.hibernate.loader.criteria.CriteriaLoader.<init>(CriteriaLoader.java:91) + * at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1577) + * at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:306) + * at it.openutils.dao.hibernate.ExampleTreeCallback.doInHibernate(HibernateDAOImpl.java:871) + * at it.openutils.dao.hibernate.ExampleTreeCallback.doInHibernate(HibernateDAOImpl.java:826) + * at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419) + * ... 42 more + * </pre> + * + * for this reason, component properties have been commented out of the test. More info here: + * https://forum.hibernate.org/viewtopic.php?f=1&t=974762 + */ @Test public void testFindFilteredProperties() { @@ -438,27 +461,27 @@ filter, Integer.MAX_VALUE, 0, - Collections.singletonList("fiscalAddress")); + Collections.singletonList("birthDate")); Assert.assertEquals(foundProperties.size(), 2); - Assert.assertEquals(foundProperties.get(0), alice.getFiscalAddress()); - Assert.assertEquals(foundProperties.get(1), bob.getFiscalAddress()); + Assert.assertEquals(foundProperties.get(0), alice.getBirthDate()); + Assert.assertEquals(foundProperties.get(1), bob.getBirthDate()); foundProperties = personDAO.findFilteredProperties( filter, Integer.MAX_VALUE, 0, - Arrays.asList("name", "birthDate"), + Arrays.asList("id", "birthDate"), Order.desc("name.givenName")); Assert.assertEquals(foundProperties.size(), 2); Object[] bobsProperties = (Object[]) foundProperties.get(0); - Assert.assertEquals(bobsProperties[0], bob.getName()); + Assert.assertEquals(bobsProperties[0], bob.getId()); Assert.assertEquals(bobsProperties[1], bob.getBirthDate()); Object[] alicesProperties = (Object[]) foundProperties.get(1); - Assert.assertEquals(alicesProperties[0], alice.getName()); + Assert.assertEquals(alicesProperties[0], alice.getId()); Assert.assertEquals(alicesProperties[1], alice.getBirthDate()); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |