[hibernate-commits] Hibernate SVN: r20193 - in core/trunk/entitymanager/src: test/java/org/hibernate/ejb/criteria/basic and 2 other directories.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Thu Aug 19 12:41:31 EDT 2010


Author: steve.ebersole at jboss.com
Date: 2010-08-19 12:41:31 -0400 (Thu, 19 Aug 2010)
New Revision: 20193

Modified:
   core/trunk/entitymanager/src/main/java/org/hibernate/ejb/criteria/path/AbstractFromImpl.java
   core/trunk/entitymanager/src/test/java/org/hibernate/ejb/criteria/basic/ExpressionsTest.java
   core/trunk/entitymanager/src/test/java/org/hibernate/ejb/metamodel/Phone.java
   core/trunk/entitymanager/src/test/resources/log4j.properties
Log:
HHH-5440 - Joined collection expressions not properly "rendered" in JPA Criteria queries


Modified: core/trunk/entitymanager/src/main/java/org/hibernate/ejb/criteria/path/AbstractFromImpl.java
===================================================================
--- core/trunk/entitymanager/src/main/java/org/hibernate/ejb/criteria/path/AbstractFromImpl.java	2010-08-19 16:22:41 UTC (rev 20192)
+++ core/trunk/entitymanager/src/main/java/org/hibernate/ejb/criteria/path/AbstractFromImpl.java	2010-08-19 16:41:31 UTC (rev 20193)
@@ -118,6 +118,11 @@
 		return getAlias();
 	}
 
+	@Override
+	public String render(CriteriaQueryCompiler.RenderingContext renderingContext) {
+		return renderProjection( renderingContext );
+	}
+
 	/**
 	 * {@inheritDoc}
 	 */

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-08-19 16:22:41 UTC (rev 20192)
+++ core/trunk/entitymanager/src/test/java/org/hibernate/ejb/criteria/basic/ExpressionsTest.java	2010-08-19 16:41:31 UTC (rev 20193)
@@ -38,8 +38,10 @@
 
 import org.hibernate.Query;
 import org.hibernate.ejb.metamodel.AbstractMetamodelSpecificTest;
+import org.hibernate.ejb.metamodel.Phone;
 import org.hibernate.ejb.metamodel.Product;
 import org.hibernate.ejb.metamodel.Product_;
+import org.hibernate.ejb.test.mapping.Phone_;
 import org.hibernate.impl.AbstractQueryImpl;
 
 /**
@@ -285,4 +287,18 @@
 		em.getTransaction().commit();
 		em.close();
 	}
+
+	public void testJoinedElementCollectionValuesInTupleList() {
+		EntityManager em = getOrCreateEntityManager();
+		em.getTransaction().begin();
+		CriteriaQuery<Phone> criteria = builder.createQuery( Phone.class );
+		Root<Phone> from = criteria.from( Phone.class );
+		criteria.where(
+				from.join( "types" )
+						.in( Collections.singletonList( Phone.Type.WORK ) )
+		);
+		em.createQuery( criteria ).getResultList();
+		em.getTransaction().commit();
+		em.close();
+	}
 }

Modified: core/trunk/entitymanager/src/test/java/org/hibernate/ejb/metamodel/Phone.java
===================================================================
--- core/trunk/entitymanager/src/test/java/org/hibernate/ejb/metamodel/Phone.java	2010-08-19 16:22:41 UTC (rev 20192)
+++ core/trunk/entitymanager/src/test/java/org/hibernate/ejb/metamodel/Phone.java	2010-08-19 16:41:31 UTC (rev 20193)
@@ -23,7 +23,9 @@
  */
 package org.hibernate.ejb.metamodel;
 
+import java.util.Set;
 import javax.persistence.Column;
+import javax.persistence.ElementCollection;
 import javax.persistence.Entity;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
@@ -38,10 +40,13 @@
 @Entity
 @Table(name = "PHONE_TABLE")
 public class Phone implements java.io.Serializable {
+	public enum Type { LAND_LINE, CELL, FAX, WORK, HOME }
+
 	private String id;
 	private String area;
 	private String number;
 	private Address address;
+	private Set<Type> types;
 
 	public Phone() {
 	}
@@ -96,4 +101,13 @@
 	public void setAddress(Address a) {
 		address = a;
 	}
+
+	@ElementCollection
+	public Set<Type> getTypes() {
+		return types;
+	}
+
+	public void setTypes(Set<Type> types) {
+		this.types = types;
+	}
 }
\ No newline at end of file

Modified: core/trunk/entitymanager/src/test/resources/log4j.properties
===================================================================
--- core/trunk/entitymanager/src/test/resources/log4j.properties	2010-08-19 16:22:41 UTC (rev 20192)
+++ core/trunk/entitymanager/src/test/resources/log4j.properties	2010-08-19 16:41:31 UTC (rev 20193)
@@ -1,23 +1,8 @@
-### direct log messages to stdout ###
 log4j.appender.stdout=org.apache.log4j.ConsoleAppender
 log4j.appender.stdout.Target=System.out
 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
 log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
 
-### direct messages to file hibernate.log ###
-log4j.appender.file=org.apache.log4j.FileAppender
-log4j.appender.file.File=hibernate.log
-log4j.appender.file.layout=org.apache.log4j.PatternLayout
-log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
-
-### direct messages to socket - chainsaw ###
-log4j.appender.socket=org.apache.log4j.net.SocketAppender
-log4j.appender.socket.remoteHost=localhost
-log4j.appender.socket.port=4560
-log4j.appender.socket.locationInfo=true
-
-### set log levels - for more verbose logging change 'info' to 'debug' ###
-
 log4j.rootLogger=warn, stdout
 
 log4j.logger.org.hibernate=debug



More information about the hibernate-commits mailing list