You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2007/12/23 22:08:14 UTC
svn commit: r606617 - in
/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src:
main/java/org/apache/cayenne/access/DataNodeSyncQualifierDescriptor.java
test/java/org/apache/cayenne/access/DataContextFlattenedAttributesTest.java
Author: aadamchik
Date: Sun Dec 23 13:08:13 2007
New Revision: 606617
URL: http://svn.apache.org/viewvc?rev=606617&view=rev
Log:
CAY-948 Implement flattened attributes in Cayenne
(delete works)
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataNodeSyncQualifierDescriptor.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextFlattenedAttributesTest.java
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataNodeSyncQualifierDescriptor.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataNodeSyncQualifierDescriptor.java?rev=606617&r1=606616&r2=606617&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataNodeSyncQualifierDescriptor.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataNodeSyncQualifierDescriptor.java Sun Dec 23 13:08:13 2007
@@ -24,6 +24,7 @@
import java.util.List;
import java.util.Map;
+import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.ObjectId;
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbJoin;
@@ -91,6 +92,12 @@
else {
// TODO: andrus 12/23/2007 - only one step relationship is supported...
+ if (descriptor.getPathFromMaster().size() != 1) {
+ throw new CayenneRuntimeException(
+ "Only single step dependent relationships are currently supported. Actual path length: "
+ + descriptor.getPathFromMaster().size());
+ }
+
DbRelationship masterDependentDbRel = descriptor.getPathFromMaster().get(0);
if (masterDependentDbRel != null) {
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextFlattenedAttributesTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextFlattenedAttributesTest.java?rev=606617&r1=606616&r2=606617&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextFlattenedAttributesTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextFlattenedAttributesTest.java Sun Dec 23 13:08:13 2007
@@ -26,6 +26,7 @@
import java.util.Iterator;
import java.util.List;
+import org.apache.art.Artist;
import org.apache.art.CompoundPainting;
import org.apache.cayenne.DataObjectUtils;
import org.apache.cayenne.exp.ExpressionFactory;
@@ -65,7 +66,7 @@
PreparedStatement stmt = conn.prepareStatement(insertArtist);
long dateBase = System.currentTimeMillis();
for (int i = 1; i <= artistCount; i++) {
- stmt.setInt(1, i);
+ stmt.setInt(1, i + 1);
stmt.setString(2, "artist" + i);
stmt.setDate(3, new java.sql.Date(dateBase + 1000 * 60 * 60 * 24 * i));
stmt.executeUpdate();
@@ -74,7 +75,7 @@
stmt = conn.prepareStatement(insertGal);
for (int i = 1; i <= galleryCount; i++) {
- stmt.setInt(1, i);
+ stmt.setInt(1, i + 2);
stmt.setString(2, "gallery" + i);
stmt.executeUpdate();
}
@@ -84,12 +85,12 @@
for (int i = 1; i <= paintCount; i++) {
stmt.setInt(1, i);
stmt.setString(2, "painting" + i);
- stmt.setInt(3, (i - 1) % artistCount + 1);
+ stmt.setInt(3, (i - 1) % artistCount + 2);
stmt.setBigDecimal(4, new BigDecimal(1000d));
if (i == 3)
stmt.setNull(5, Types.INTEGER);
else
- stmt.setInt(5, (i - 1) % galleryCount + 1);
+ stmt.setInt(5, (i - 1) % galleryCount + 3);
stmt.executeUpdate();
}
stmt.close();
@@ -205,6 +206,11 @@
}
public void testDelete() throws Exception {
+ // adding a bit of random overlapping dta to db...
+ Artist a = context.newObject(Artist.class);
+ a.setArtistName("AX");
+ context.commitChanges();
+
CompoundPainting o1 = context.newObject(CompoundPainting.class);
o1.setArtistName("A1");
o1.setEstimatedPrice(new BigDecimal(1.0d));
@@ -220,7 +226,7 @@
Number artistCount = (Number) DataObjectUtils.objectForQuery(
context,
new EJBQLQuery("select count(a) from Artist a"));
- assertEquals(0, artistCount.intValue());
+ assertEquals(1, artistCount.intValue());
Number paintingCount = (Number) DataObjectUtils.objectForQuery(
context,
new EJBQLQuery("select count(a) from Painting a"));