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 2006/10/15 01:36:44 UTC

svn commit: r464061 - in /incubator/cayenne/main/trunk/core/cayenne-jpa: pom.xml src/main/java/org/apache/cayenne/jpa/cspi/CjpaAccessorVisitor.java

Author: aadamchik
Date: Sat Oct 14 16:36:43 2006
New Revision: 464061

URL: http://svn.apache.org/viewvc?view=rev&rev=464061
Log:
CAY-692: Extra argument needed in ObjectContext.prepareForAccess - whether the property is a fault or not.
(adding lazy faulting support to the JPA enhancer)

Modified:
    incubator/cayenne/main/trunk/core/cayenne-jpa/pom.xml
    incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaAccessorVisitor.java

Modified: incubator/cayenne/main/trunk/core/cayenne-jpa/pom.xml
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/pom.xml?view=diff&rev=464061&r1=464060&r2=464061
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jpa/pom.xml (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jpa/pom.xml Sat Oct 14 16:36:43 2006
@@ -53,11 +53,6 @@
 			<artifactId>cayenne-jdk1.5</artifactId>
 			<version>${version}</version>
 		</dependency>
-
-		<dependency>
-			<groupId>cglib</groupId>
-			<artifactId>cglib-nodep</artifactId>
-		</dependency>
 	</dependencies>
 
 	<build>

Modified: incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaAccessorVisitor.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaAccessorVisitor.java?view=diff&rev=464061&r1=464060&r2=464061
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaAccessorVisitor.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaAccessorVisitor.java Sat Oct 14 16:36:43 2006
@@ -23,6 +23,8 @@
 import org.apache.cayenne.enhancer.GetterVisitor;
 import org.apache.cayenne.enhancer.SetterVisitor;
 import org.apache.cayenne.jpa.map.JpaClassDescriptor;
+import org.apache.cayenne.jpa.map.JpaPropertyDescriptor;
+import org.apache.cayenne.map.Relationship;
 import org.objectweb.asm.ClassVisitor;
 import org.objectweb.asm.MethodVisitor;
 import org.objectweb.asm.Type;
@@ -59,10 +61,18 @@
             MethodVisitor mv,
             String property,
             Type propertyType) {
-        return (descriptor.getProperty(property) != null) ? new GetterVisitor(
-                mv,
-                helper,
-                property) : mv;
+
+        JpaPropertyDescriptor propertyDescriptor = descriptor.getProperty(property);
+
+        if (propertyDescriptor != null) {
+            // TODO: andrus, 10/14/2006 - this should access Jpa LAZY vs. EAGER falg
+            // instead of using Cayenne default logic of lazy relationships
+            boolean faulted = propertyDescriptor.getTargetEntityType() != null;
+
+            return new GetterVisitor(mv, helper, property, faulted);
+        }
+
+        return mv;
     }
 
     @Override