You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by pp...@apache.org on 2008/11/07 23:49:13 UTC

svn commit: r712300 - in /openjpa/trunk: openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/ openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/unique/ openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persis...

Author: ppoddar
Date: Fri Nov  7 14:49:13 2008
New Revision: 712300

URL: http://svn.apache.org/viewvc?rev=712300&view=rev
Log:
Generate unique name for unique constraints created by @Column(unique=true)

Modified:
    openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/Unique.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/unique/TestUniqueConstraint.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/unique/UniqueA.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/unique/UniqueB.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/unique/orm.xml

Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/Unique.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/Unique.java?rev=712300&r1=712299&r2=712300&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/Unique.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/Unique.java Fri Nov  7 14:49:13 2008
@@ -28,7 +28,8 @@
  */
 public class Unique
     extends LocalConstraint {
-	private boolean _autoNaming = false;
+    private boolean _autoNaming = false;
+    private static int _counter = 1;
     
 	/**
      * Default constructor without a name.
@@ -110,7 +111,9 @@
 	private String createAutoName() {
 		Column[] columns = getColumns();
 		int l = 32/Math.max(columns.length,1);
-		StringBuffer autoName = new StringBuffer("UNQ_");
+		StringBuffer autoName = new StringBuffer("UNQ_"); 
+		if (columns.length == 0) 
+			autoName.append(_counter++);
 		for (Column column : columns)
 			autoName.append(chop(column.getName(),l));
 		return autoName.toString();

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/unique/TestUniqueConstraint.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/unique/TestUniqueConstraint.java?rev=712300&r1=712299&r2=712300&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/unique/TestUniqueConstraint.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/unique/TestUniqueConstraint.java Fri Nov  7 14:49:13 2008
@@ -63,8 +63,12 @@
 				"UNIQUE .*\\(GEN1, GEN2\\)");
 		assertSQLFragnments(sqls, "CREATE TABLE UNIQUE_JOINTABLE",
 				"UNIQUE .*\\(FK_A, FK_B\\)");
+		assertSQLFragnments(sqls, "CREATE TABLE UNIQUE_A",
+			    "UNIQUE .*\\(SAME\\)");
+		assertSQLFragnments(sqls, "CREATE TABLE UNIQUE_B",
+			    "UNIQUE .*\\(SAME\\)");
 	}
-	
+		
 	void assertSQLFragnments(List<String> list, String... keys) {
 		if (SQLSniffer.matches(list, keys))
 			return;

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/unique/UniqueA.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/unique/UniqueA.java?rev=712300&r1=712299&r2=712300&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/unique/UniqueA.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/unique/UniqueA.java Fri Nov  7 14:49:13 2008
@@ -67,6 +67,8 @@
 	@Column(nullable=false)
 	private int a4;
 	
+	@Column(name="SAME", unique=true)
+	private int same;
 	
 	private int a5;
 	private int a6;

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/unique/UniqueB.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/unique/UniqueB.java?rev=712300&r1=712299&r2=712300&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/unique/UniqueB.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/unique/UniqueB.java Fri Nov  7 14:49:13 2008
@@ -35,4 +35,6 @@
 	private int b1;
 	@Column(nullable=false)
 	private int b2;
+	@Column(name="SAME", unique=true)
+	private int same;
 }

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/unique/orm.xml
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/unique/orm.xml?rev=712300&r1=712299&r2=712300&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/unique/orm.xml (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/unique/orm.xml Fri Nov  7 14:49:13 2008
@@ -65,7 +65,9 @@
 			<basic name="a6">
 				<column name="a6x"/>
 			</basic>
-			
+			<basic name="same">
+				<column name="SAME" unique="true"/>
+			</basic>
 			<basic name="sa1">
 				<column name="sa1x" table="UNIQUE_SECONDARY_XML" />
 			</basic>
@@ -112,6 +114,9 @@
 			<basic name="b2">
 				<column name="b2x"/>
 			</basic>
+            <basic name="same">
+                <column name="SAME" unique="true"/>
+            </basic>
 		</attributes>
 	</entity>
 </entity-mappings>