[hibernate-commits] Hibernate SVN: r18823 - in core/trunk/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
Wed Feb 17 16:07:43 EST 2010
Author: steve.ebersole at jboss.com
Date: 2010-02-17 16:07:42 -0500 (Wed, 17 Feb 2010)
New Revision: 18823
Modified:
core/trunk/entitymanager/src/main/java/org/hibernate/ejb/criteria/predicate/CompoundPredicate.java
core/trunk/entitymanager/src/test/java/org/hibernate/ejb/criteria/basic/ExpressionsTest.java
Log:
HHH-4583 - Incorrect handling of empty conjunction and disjunction
Modified: core/trunk/entitymanager/src/main/java/org/hibernate/ejb/criteria/predicate/CompoundPredicate.java
===================================================================
--- core/trunk/entitymanager/src/main/java/org/hibernate/ejb/criteria/predicate/CompoundPredicate.java 2010-02-17 19:56:41 UTC (rev 18822)
+++ core/trunk/entitymanager/src/main/java/org/hibernate/ejb/criteria/predicate/CompoundPredicate.java 2010-02-17 21:07:42 UTC (rev 18823)
@@ -116,9 +116,9 @@
public String render(CriteriaQueryCompiler.RenderingContext renderingContext) {
if ( getExpressions().size() == 0 ) {
- return getOperator() == Predicate.BooleanOperator.AND
- ? "true"
- : "false";
+ return getOperator() == BooleanOperator.AND
+ ? "1=1" // true
+ : "0=1"; // false
}
if ( getExpressions().size() == 1 ) {
return ( (Renderable) getExpressions().get(0) ).render( renderingContext );
Modified: core/trunk/entitymanager/src/test/java/org/hibernate/ejb/criteria/basic/ExpressionsTest.java
===================================================================
--- core/trunk/entitymanager/src/test/java/org/hibernate/ejb/criteria/basic/ExpressionsTest.java 2010-02-17 19:56:41 UTC (rev 18822)
+++ core/trunk/entitymanager/src/test/java/org/hibernate/ejb/criteria/basic/ExpressionsTest.java 2010-02-17 21:07:42 UTC (rev 18823)
@@ -25,6 +25,7 @@
import java.math.BigDecimal;
import java.math.BigInteger;
+import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
@@ -69,6 +70,18 @@
super.tearDown();
}
+ public void testEmptyConjunction() {
+ EntityManager em = getOrCreateEntityManager();
+ em.getTransaction().begin();
+ CriteriaQuery<Product> criteria = builder.createQuery( Product.class );
+ criteria.from( Product.class );
+ criteria.where( builder.and() );
+ List<Product> result = em.createQuery( criteria ).getResultList();
+ assertEquals( 1, result.size() );
+ em.getTransaction().commit();
+ em.close();
+ }
+
public void testDiff() {
EntityManager em = getOrCreateEntityManager();
em.getTransaction().begin();
More information about the hibernate-commits
mailing list