[hibernate-commits] Hibernate SVN: r10264 - in trunk/HibernateExt/metadata/src: java/org/hibernate/cfg/annotations test/org/hibernate/test/annotations/indexcoll

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Tue Aug 15 11:44:11 EDT 2006


Author: epbernard
Date: 2006-08-15 11:44:09 -0400 (Tue, 15 Aug 2006)
New Revision: 10264

Modified:
   trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/annotations/MapBinder.java
   trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/indexcoll/Atmosphere.java
Log:
ANN-414 add parenthesis to subselect when working on @MapKey  @ManyToMany
ANN-414 use  and rather than , in where clause

Modified: trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/annotations/MapBinder.java
===================================================================
--- trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/annotations/MapBinder.java	2006-08-14 16:29:42 UTC (rev 10263)
+++ trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/annotations/MapBinder.java	2006-08-15 15:44:09 UTC (rev 10264)
@@ -268,9 +268,9 @@
 				Column colColumn = (Column) collectionTableColumns.next();
 				Column refColumn = (Column) referencedEntityColumns.next();
 				fromAndWhereSb.append(alias).append('.').append( refColumn.getQuotedName() )
-						.append('=').append( colColumn.getQuotedName() ).append(',');
+						.append('=').append( colColumn.getQuotedName() ).append(" and ");
 			}
-			fromAndWhere = fromAndWhereSb.substring(0, fromAndWhereSb.length() - 1 );
+			fromAndWhere = fromAndWhereSb.substring(0, fromAndWhereSb.length() - 5 );
 		}
 
 		if ( value instanceof Component ) {
@@ -334,7 +334,7 @@
 				}
 				if (fromAndWhere != null) {
 					formulaString = Template.renderWhereStringTemplate( formulaString, "$alias$", new HSQLDialect() );
-					formulaString = "select " +  formulaString + fromAndWhere;
+					formulaString = "(select " +  formulaString + fromAndWhere + ")";
 					formulaString = StringHelper.replace(
 							formulaString,
 							"$alias$",

Modified: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/indexcoll/Atmosphere.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/indexcoll/Atmosphere.java	2006-08-14 16:29:42 UTC (rev 10263)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/indexcoll/Atmosphere.java	2006-08-15 15:44:09 UTC (rev 10264)
@@ -10,8 +10,11 @@
 import javax.persistence.ManyToMany;
 import javax.persistence.Column;
 import javax.persistence.JoinTable;
+import javax.persistence.JoinColumn;
 
 import org.hibernate.annotations.MapKey;
+import org.hibernate.annotations.CollectionOfElements;
+import org.hibernate.annotations.MapKeyManyToMany;
 
 /**
  * @author Emmanuel Bernard
@@ -29,4 +32,12 @@
 	@ManyToMany(cascade = CascadeType.ALL)
 	@JoinTable(name = "Gas_per_key")
 	public Map<GasKey, Gas> gasesPerKey = new HashMap<GasKey, Gas>();
+
+	/**
+	@CollectionOfElements
+	@Column(name="composition_rate")
+	@MapKeyManyToMany(joinColumns = @JoinColumn(name="gas_id"))
+	@JoinTable(name = "Composition", joinColumns = @JoinColumn(name = "atmosphere_id"))
+	public Map<Gas, Double> composition = new HashMap<Gas, Double>();
+	*/
 }




More information about the hibernate-commits mailing list