[hibernate-commits] Hibernate SVN: r19929 - in core/branches/Branch_3_5/entitymanager/src: test/java/org/hibernate/ejb/criteria/basic and 1 other directory.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Sat Jul 10 09:48:15 EDT 2010
Author: steve.ebersole at jboss.com
Date: 2010-07-10 09:48:15 -0400 (Sat, 10 Jul 2010)
New Revision: 19929
Modified:
core/branches/Branch_3_5/entitymanager/src/main/java/org/hibernate/ejb/criteria/expression/ExpressionImpl.java
core/branches/Branch_3_5/entitymanager/src/test/java/org/hibernate/ejb/criteria/basic/ExpressionsTest.java
Log:
HHH-5370 - Building IN condition with CriteriaBuilder providing collection of values not working.
Modified: core/branches/Branch_3_5/entitymanager/src/main/java/org/hibernate/ejb/criteria/expression/ExpressionImpl.java
===================================================================
--- core/branches/Branch_3_5/entitymanager/src/main/java/org/hibernate/ejb/criteria/expression/ExpressionImpl.java 2010-07-10 12:48:19 UTC (rev 19928)
+++ core/branches/Branch_3_5/entitymanager/src/main/java/org/hibernate/ejb/criteria/expression/ExpressionImpl.java 2010-07-10 13:48:15 UTC (rev 19929)
@@ -88,7 +88,7 @@
* {@inheritDoc}
*/
public Predicate in(Collection<?> values) {
- return criteriaBuilder().in( this, values );
+ return criteriaBuilder().in( this, values.toArray() );
}
/**
Modified: core/branches/Branch_3_5/entitymanager/src/test/java/org/hibernate/ejb/criteria/basic/ExpressionsTest.java
===================================================================
--- core/branches/Branch_3_5/entitymanager/src/test/java/org/hibernate/ejb/criteria/basic/ExpressionsTest.java 2010-07-10 12:48:19 UTC (rev 19928)
+++ core/branches/Branch_3_5/entitymanager/src/test/java/org/hibernate/ejb/criteria/basic/ExpressionsTest.java 2010-07-10 13:48:15 UTC (rev 19929)
@@ -25,6 +25,7 @@
import java.math.BigDecimal;
import java.math.BigInteger;
+import java.util.Collections;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.TypedQuery;
@@ -58,7 +59,7 @@
product.setId( "product1" );
product.setPrice( 1.23d );
product.setQuantity( 2 );
- product.setPartNumber( Integer.MAX_VALUE + 1 );
+ product.setPartNumber( ((long)Integer.MAX_VALUE) + 1 );
product.setRating( 1.999f );
product.setSomeBigInteger( BigInteger.valueOf( 987654321 ) );
product.setSomeBigDecimal( BigDecimal.valueOf( 987654.321 ) );
@@ -246,4 +247,40 @@
AbstractQueryImpl hqlQueryImpl = (AbstractQueryImpl) query;
return hqlQueryImpl.getParameterMetadata().getNamedParameterNames().size();
}
+
+ public void testInExplicitTupleList() {
+ EntityManager em = getOrCreateEntityManager();
+ em.getTransaction().begin();
+ CriteriaQuery<Product> criteria = builder.createQuery( Product.class );
+ Root<Product> from = criteria.from( Product.class );
+ criteria.where( from.get( Product_.partNumber ).in( Collections.singletonList( ((long)Integer.MAX_VALUE) + 1 ) ) );
+ List<Product> result = em.createQuery( criteria ).getResultList();
+ assertEquals( 1, result.size() );
+ em.getTransaction().commit();
+ em.close();
+ }
+
+ public void testInExplicitTupleListVarargs() {
+ EntityManager em = getOrCreateEntityManager();
+ em.getTransaction().begin();
+ CriteriaQuery<Product> criteria = builder.createQuery( Product.class );
+ Root<Product> from = criteria.from( Product.class );
+ criteria.where( from.get( Product_.partNumber ).in( ((long)Integer.MAX_VALUE) + 1 ) );
+ List<Product> result = em.createQuery( criteria ).getResultList();
+ assertEquals( 1, result.size() );
+ em.getTransaction().commit();
+ em.close();
+ }
+
+ public void testInExpressionVarargs() {
+ EntityManager em = getOrCreateEntityManager();
+ em.getTransaction().begin();
+ CriteriaQuery<Product> criteria = builder.createQuery( Product.class );
+ Root<Product> from = criteria.from( Product.class );
+ criteria.where( from.get( Product_.partNumber ).in( from.get( Product_.partNumber ) ) );
+ List<Product> result = em.createQuery( criteria ).getResultList();
+ assertEquals( 1, result.size() );
+ em.getTransaction().commit();
+ em.close();
+ }
}
More information about the hibernate-commits
mailing list