You are viewing a plain text version of this content. The canonical link for it is here.
Posted to torque-dev@db.apache.org by tf...@apache.org on 2014/09/03 21:36:15 UTC
svn commit: r1622332 - in /db/torque/torque4/trunk:
torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/retrieveByPK.vm
torque-test/src/test/java/org/apache/torque/generated/peer/RetrieveByPkTest.java
Author: tfischer
Date: Wed Sep 3 19:36:14 2014
New Revision: 1622332
URL: http://svn.apache.org/r1622332
Log:
TORQUE-318 retrieveByPK now throws NoRowsException instead of TorqueException when it can't find a primary key.
Modified:
db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/retrieveByPK.vm
db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/generated/peer/RetrieveByPkTest.java
Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/retrieveByPK.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/retrieveByPK.vm?rev=1622332&r1=1622331&r2=1622332&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/retrieveByPK.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/retrieveByPK.vm Wed Sep 3 19:36:14 2014
@@ -135,13 +135,17 @@
criteria.and(${peerClassName}.${peerColumnName}, $columnField);
#end
List<${dbObjectClassName}> v = doSelect(criteria, con);
- if (v.size() == 1)
+ if (v.size() == 0)
{
- return v.get(0);
+ throw new NoRowsException("Failed to select a row.");
+ }
+ else if (v.size() > 1)
+ {
+ throw new TooManyRowsException("Failed to select only one row.");
}
else
{
- throw new TorqueException("Failed to select one and only one row.");
+ return ($dbObjectClassName)v.get(0);
}
}
#end
Modified: db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/generated/peer/RetrieveByPkTest.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/generated/peer/RetrieveByPkTest.java?rev=1622332&r1=1622331&r2=1622332&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/generated/peer/RetrieveByPkTest.java (original)
+++ db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/generated/peer/RetrieveByPkTest.java Wed Sep 3 19:36:14 2014
@@ -20,6 +20,7 @@ package org.apache.torque.generated.peer
*/
import java.math.BigDecimal;
+import java.util.Date;
import java.util.List;
import org.apache.torque.BaseDatabaseTestCase;
@@ -28,6 +29,7 @@ import org.apache.torque.om.NumberKey;
import org.apache.torque.om.ObjectKey;
import org.apache.torque.test.dbobject.Author;
import org.apache.torque.test.peer.AuthorPeer;
+import org.apache.torque.test.peer.MultiPkPeer;
/**
* Tests the retrieveByPk methods.
@@ -82,6 +84,24 @@ public class RetrieveByPkTest extends Ba
}
/**
+ * Tests retrieveByPk using a non-existent primary key
+ * for an object with multiple PKs (TORQUE-318)
+ *
+ * @throws Exception if the test fails
+ */
+ public void testRetrieveByNonExistingPkMultiplePKs() throws Exception
+ {
+ try
+ {
+ MultiPkPeer.retrieveByPK("", 1, "", 1, (byte) 1, (short) 1, 1l, 1d, 1d, new Date(1l));
+ }
+ catch (NoRowsException e)
+ {
+ assertEquals("Failed to select a row.", e.getMessage());
+ }
+ }
+
+ /**
* Tests retrieveByPk using a key object with a value of null.
*
* @throws Exception if the test fails
---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org