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

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Fri Aug 25 19:28:33 EDT 2006


Author: epbernard
Date: 2006-08-25 19:28:31 -0400 (Fri, 25 Aug 2006)
New Revision: 10353

Modified:
   trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/annotations/CollectionBinder.java
   trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/onetomany/City.java
   trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/onetomany/OneToManyTest.java
   trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/onetomany/Street.java
Log:
ANN-284 can @OrderBy property made of formula

Modified: trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/annotations/CollectionBinder.java
===================================================================
--- trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/annotations/CollectionBinder.java	2006-08-25 23:22:53 UTC (rev 10352)
+++ trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/annotations/CollectionBinder.java	2006-08-25 23:28:31 UTC (rev 10353)
@@ -25,16 +25,16 @@
 import org.hibernate.annotations.AccessType;
 import org.hibernate.annotations.BatchSize;
 import org.hibernate.annotations.Cache;
+import org.hibernate.annotations.CollectionId;
 import org.hibernate.annotations.CollectionOfElements;
 import org.hibernate.annotations.Fetch;
+import org.hibernate.annotations.ForeignKey;
 import org.hibernate.annotations.LazyCollection;
 import org.hibernate.annotations.LazyCollectionOption;
 import org.hibernate.annotations.OrderBy;
 import org.hibernate.annotations.Sort;
 import org.hibernate.annotations.SortType;
 import org.hibernate.annotations.Where;
-import org.hibernate.annotations.CollectionId;
-import org.hibernate.annotations.ForeignKey;
 import org.hibernate.cfg.AnnotatedClassType;
 import org.hibernate.cfg.AnnotationBinder;
 import org.hibernate.cfg.BinderHelper;
@@ -53,14 +53,15 @@
 import org.hibernate.mapping.Column;
 import org.hibernate.mapping.Component;
 import org.hibernate.mapping.DependantValue;
+import org.hibernate.mapping.IdGenerator;
 import org.hibernate.mapping.Join;
 import org.hibernate.mapping.KeyValue;
 import org.hibernate.mapping.ManyToOne;
 import org.hibernate.mapping.PersistentClass;
 import org.hibernate.mapping.Property;
+import org.hibernate.mapping.Selectable;
 import org.hibernate.mapping.SimpleValue;
 import org.hibernate.mapping.Table;
-import org.hibernate.mapping.IdGenerator;
 import org.hibernate.reflection.XAnnotatedElement;
 import org.hibernate.reflection.XClass;
 import org.hibernate.reflection.XProperty;
@@ -655,8 +656,8 @@
 				//order by id
 				Iterator it = associatedClass.getIdentifier().getColumnIterator();
 				while ( it.hasNext() ) {
-					Column col = (Column) it.next();
-					orderByBuffer.append( col.getName() ).append( " asc" ).append( ", " );
+					Selectable col = (Selectable) it.next();
+					orderByBuffer.append( col.getText() ).append( " asc" ).append( ", " );
 				}
 			}
 			else {
@@ -710,8 +711,8 @@
 
 					Iterator propertyColumns = p.getColumnIterator();
 					while ( propertyColumns.hasNext() ) {
-						Column column = (Column) propertyColumns.next();
-						orderByBuffer.append( column.getName() )
+						Selectable column = (Selectable) propertyColumns.next();
+						orderByBuffer.append( column.getText() )
 								.append( " " )
 								.append( ordering.get( index ) )
 								.append( ", " );
@@ -784,8 +785,8 @@
 
 					Iterator propertyColumns = p.getColumnIterator();
 					while ( propertyColumns.hasNext() ) {
-						Column column = (Column) propertyColumns.next();
-						orderByBuffer.append( column.getName() )
+						Selectable column = (Selectable) propertyColumns.next();
+						orderByBuffer.append( column.getText() )
 								.append( " " )
 								.append( ordering.get( index ) )
 								.append( ", " );

Modified: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/onetomany/City.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/onetomany/City.java	2006-08-25 23:22:53 UTC (rev 10352)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/onetomany/City.java	2006-08-25 23:28:31 UTC (rev 10353)
@@ -41,7 +41,7 @@
 	}
 
 	@OneToMany(mappedBy = "city")
-	@OrderBy("streetName, id")
+	@OrderBy("streetNameCopy, streetName, id")
 	public synchronized List<Street> getStreets() {
 		return streets;
 	}

Modified: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/onetomany/OneToManyTest.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/onetomany/OneToManyTest.java	2006-08-25 23:22:53 UTC (rev 10352)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/onetomany/OneToManyTest.java	2006-08-25 23:28:31 UTC (rev 10353)
@@ -49,7 +49,7 @@
 		s.close();
 	}
 
-	public void testListWithBagSemantic() throws Exception {
+	public void testListWithBagSemanticAndOrderBy() throws Exception {
 		Session s;
 		Transaction tx;
 		s = openSession();
@@ -74,6 +74,7 @@
 		tx.commit();
 		s.clear();
 		tx = s.beginTransaction();
+		//testing @OrderBy with explicit values including Formula
 		paris = (City) s.get( City.class, paris.getId() );
 		assertEquals( 3, paris.getStreets().size() );
 		assertEquals( chmpsElysees.getStreetName(), paris.getStreets().get( 0 ).getStreetName() );

Modified: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/onetomany/Street.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/onetomany/Street.java	2006-08-25 23:22:53 UTC (rev 10352)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/onetomany/Street.java	2006-08-25 23:28:31 UTC (rev 10353)
@@ -5,7 +5,10 @@
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
 import javax.persistence.ManyToOne;
+import javax.persistence.Column;
 
+import org.hibernate.annotations.Formula;
+
 /**
  * @author Emmanuel Bernard
  */
@@ -13,6 +16,7 @@
 public class Street {
 	private Integer id;
 	private String streetName;
+	private String streetNameCopy;
 	private City city;
 
 	@Id
@@ -25,6 +29,7 @@
 		this.id = id;
 	}
 
+	@Column(name="STREET_NAME")
 	public String getStreetName() {
 		return streetName;
 	}
@@ -33,6 +38,15 @@
 		this.streetName = streetName;
 	}
 
+	@Formula("STREET_NAME")
+	public String getStreetNameCopy() {
+		return streetNameCopy;
+	}
+
+	public void setStreetNameCopy(String streetNameCopy) {
+		this.streetNameCopy = streetNameCopy;
+	}
+
 	@ManyToOne
 	public City getCity() {
 		return city;




More information about the hibernate-commits mailing list