[hibernate-commits] Hibernate SVN: r19218 - in core/trunk/annotations/src: test/java/org/hibernate/test/annotations/join and 1 other directory.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Tue Apr 13 04:51:34 EDT 2010


Author: stliu
Date: 2010-04-13 04:51:33 -0400 (Tue, 13 Apr 2010)
New Revision: 19218

Added:
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/join/SysGroupsOrm.java
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/join/SysUserOrm.java
Modified:
   core/trunk/annotations/src/main/java/org/hibernate/cfg/annotations/TableBinder.java
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/join/JoinTest.java
Log:
HHH-5103 Specifying the referencedColumnName in a @JoinColumn in backtics like fails 

Modified: core/trunk/annotations/src/main/java/org/hibernate/cfg/annotations/TableBinder.java
===================================================================
--- core/trunk/annotations/src/main/java/org/hibernate/cfg/annotations/TableBinder.java	2010-04-12 18:21:12 UTC (rev 19217)
+++ core/trunk/annotations/src/main/java/org/hibernate/cfg/annotations/TableBinder.java	2010-04-13 08:51:33 UTC (rev 19218)
@@ -446,7 +446,7 @@
 							String referencedColumn = joinCol.getReferencedColumn();
 							referencedColumn = mappings.getPhysicalColumnName( referencedColumn, table );
 							//In JPA 2 referencedColumnName is case insensitive
-							if ( referencedColumn.equalsIgnoreCase( col.getName() ) ) {
+							if ( referencedColumn.equalsIgnoreCase( col.getQuotedName() ) ) {
 								//proper join column
 								if ( joinCol.isNameDeferred() ) {
 									joinCol.linkValueUsingDefaultColumnNaming(

Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/join/JoinTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/join/JoinTest.java	2010-04-12 18:21:12 UTC (rev 19217)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/join/JoinTest.java	2010-04-13 08:51:33 UTC (rev 19218)
@@ -1,6 +1,7 @@
 //$Id$
 package org.hibernate.test.annotations.join;
 
+import java.util.ArrayList;
 import java.util.Date;
 
 import org.hibernate.Criteria;
@@ -114,7 +115,20 @@
 		tx.commit();
 		s.close();
 	}
-
+	
+	public void testReferenceColumnWithBacktics() throws Exception {
+		Session s=openSession();
+		s.beginTransaction();
+		SysGroupsOrm g=new SysGroupsOrm();
+		SysUserOrm u=new SysUserOrm();
+		u.setGroups( new ArrayList<SysGroupsOrm>() );
+		u.getGroups().add( g );
+		s.save( g );
+		s.save( u );
+		s.getTransaction().commit();
+		s.close();
+	}
+	
 	public void testUniqueConstaintOnSecondaryTable() throws Exception {
 		Cat cat = new Cat();
 		cat.setStoryPart2( "My long story" );
@@ -200,7 +214,9 @@
 				Dog.class,
 				A.class,
 				B.class,
-				C.class
+				C.class,
+				SysGroupsOrm.class,
+				SysUserOrm.class
 		};
 	}
 }

Added: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/join/SysGroupsOrm.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/join/SysGroupsOrm.java	                        (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/join/SysGroupsOrm.java	2010-04-13 08:51:33 UTC (rev 19218)
@@ -0,0 +1,27 @@
+package org.hibernate.test.annotations.join;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+ at Entity
+ at Table( name = "SYS_GROUPS" )
+public class SysGroupsOrm {
+
+	private long groupId;
+
+	@Id
+	@GeneratedValue
+	@Column( name = "GROUPID" )
+	public long getGroupId() {
+		return groupId;
+	}
+
+	public void setGroupId( long groupId ) {
+		this.groupId = groupId;
+	}
+
+}
\ No newline at end of file

Added: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/join/SysUserOrm.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/join/SysUserOrm.java	                        (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/join/SysUserOrm.java	2010-04-13 08:51:33 UTC (rev 19218)
@@ -0,0 +1,46 @@
+package org.hibernate.test.annotations.join;
+
+import java.util.Collection;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.JoinTable;
+import javax.persistence.ManyToMany;
+import javax.persistence.Table;
+
+ at Entity( name = "sys_user" )
+ at Table( name = "SYS_USER" )
+public class SysUserOrm {
+
+	private long userid;
+
+	private Collection<SysGroupsOrm> groups;
+
+	@Id
+	@GeneratedValue
+	@Column( name = "`auid`" )
+	public long getUserid() {
+		return userid;
+	}
+
+	public void setUserid( long userid ) {
+		this.userid = userid;
+	}
+
+	@ManyToMany( fetch = FetchType.LAZY )
+	@JoinTable( name = "SYS_GROUPS_USERS", 
+			joinColumns = @JoinColumn( name = "USERID", referencedColumnName = "`auid`" ), 
+			inverseJoinColumns = @JoinColumn( name = "GROUPID", referencedColumnName = "GROUPID" ) )
+	public Collection<SysGroupsOrm> getGroups() {
+		return groups;
+	}
+
+	public void setGroups( Collection<SysGroupsOrm> groups ) {
+		this.groups = groups;
+	}
+}



More information about the hibernate-commits mailing list