You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by cu...@apache.org on 2011/08/15 23:54:40 UTC
svn commit: r1158027 - in /openjpa/trunk:
openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/
openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/
openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/kernel/
Author: curtisr7
Date: Mon Aug 15 21:54:40 2011
New Revision: 1158027
URL: http://svn.apache.org/viewvc?rev=1158027&view=rev
Log:
OPENJPA-2039: Update configuration properties.
Modified:
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.java
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.java
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.java
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCStoreManager.java
openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.java
openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.java
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/kernel/TestJDBCStoreOptSelect.java
Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.java?rev=1158027&r1=1158026&r2=1158027&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.java Mon Aug 15 21:54:40 2011
@@ -294,4 +294,21 @@ public class DelegatingJDBCFetchConfigur
throw translate(re);
}
}
+ @Override
+ public void setIgnoreDfgForFkSelect(boolean b) {
+ try {
+ getJDBCDelegate().setIgnoreDfgForFkSelect(b);
+ } catch (RuntimeException re) {
+ throw translate(re);
+ }
+ }
+
+ @Override
+ public boolean getIgnoreDfgForFkSelect() {
+ try {
+ return getJDBCDelegate().getIgnoreDfgForFkSelect();
+ } catch (RuntimeException re) {
+ throw translate(re);
+ }
+ }
}
Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.java?rev=1158027&r1=1158026&r2=1158027&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.java Mon Aug 15 21:54:40 2011
@@ -241,4 +241,20 @@ public interface JDBCFetchConfiguration
* @since 1.0.3
*/
public JDBCFetchConfiguration addFetchInnerJoins(Collection<String> fields);
+
+ /**
+ * If true - Ignore whether or not a field is in the dfg for mappings that use 2-part selects to load fk table data.
+ *
+ * @since 2.2.0
+ * @return false
+ */
+ public boolean getIgnoreDfgForFkSelect();
+
+ /**
+ * If true - Ignore whether or not a field is in the dfg for mappings that use 2-part selects to load fk table data.
+ *
+ * @since 2.2.0
+ * @return false
+ */
+ public void setIgnoreDfgForFkSelect(boolean b);
}
Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.java?rev=1158027&r1=1158026&r2=1158027&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.java Mon Aug 15 21:54:40 2011
@@ -92,6 +92,7 @@ public class JDBCFetchConfigurationImpl
public Set<String> joins = null;
public Set<String> fetchInnerJoins = null;
public int isolationLevel = -1;
+ public boolean ignoreDfgForFkSelect = false;
}
protected final JDBCConfigurationState _state;
@@ -135,8 +136,17 @@ public class JDBCFetchConfigurationImpl
setLRSSize(jf.getLRSSize());
setJoinSyntax(jf.getJoinSyntax());
addJoins(jf.getJoins());
+ setIgnoreDfgForFkSelect(jf.getIgnoreDfgForFkSelect());
}
+ @Override
+ public boolean getIgnoreDfgForFkSelect() {
+ return _state.ignoreDfgForFkSelect;
+ }
+ @Override
+ public void setIgnoreDfgForFkSelect(boolean b) {
+ _state.ignoreDfgForFkSelect = b;
+ }
public int getEagerFetchMode() {
return _state.eagerMode;
}
Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCStoreManager.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCStoreManager.java?rev=1158027&r1=1158026&r2=1158027&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCStoreManager.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCStoreManager.java Mon Aug 15 21:54:40 2011
@@ -111,7 +111,6 @@ public class JDBCStoreManager implements
private RefCountConnection _conn = null;
private boolean _active = false;
private Log _log = null;
- boolean _ignoreDfgForFkSelect = false;
// track the pending statements so we can cancel them
private Set<Statement> _stmnts = Collections.synchronizedSet(new HashSet<Statement>());
@@ -1410,7 +1409,7 @@ public class JDBCStoreManager implements
*/
private boolean optSelect(FieldMapping fm, Select sel, OpenJPAStateManager sm, JDBCFetchConfiguration fetch) {
boolean dfg =
- _ignoreDfgForFkSelect ||
+ fetch.getIgnoreDfgForFkSelect() ||
!fm.isInDefaultFetchGroup() && !fm.isDefaultFetchGroupExplicit();
return dfg && (sm == null || sm.getPCState() == PCState.TRANSIENT || !sm.getLoaded().get(fm.getIndex()))
@@ -1551,10 +1550,6 @@ public class JDBCStoreManager implements
? getConfiguration().getFinderCacheInstance() : null;
}
- public void setIgnoreDfgForFkSelect(boolean b) {
- _ignoreDfgForFkSelect = b;
- }
-
/**
* Connection returned to client code. Makes sure its wrapped connection ref count is decremented on finalize.
*/
Modified: openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.java?rev=1158027&r1=1158026&r2=1158027&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.java Mon Aug 15 21:54:40 2011
@@ -227,4 +227,20 @@ public interface JDBCFetchPlan
* @deprecated use {@link #setJoinSyntax(JoinSyntax)} instead.
*/
public JDBCFetchPlan setJoinSyntax(int syntax);
+
+ /**
+ * If true - Ignore whether or not a field is in the dfg for mappings that use 2-part selects to load fk table data.
+ *
+ * @since 2.2.0
+ * @return false
+ */
+ public boolean getIgnoreDfgForFkSelect();
+
+ /**
+ * If true - Ignore whether or not a field is in the dfg for mappings that use 2-part selects to load fk table data.
+ *
+ * @since 2.2.0
+ * @return false
+ */
+ public void setIgnoreDfgForFkSelect(boolean b);
}
Modified: openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.java?rev=1158027&r1=1158026&r2=1158027&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.java Mon Aug 15 21:54:40 2011
@@ -20,8 +20,6 @@ package org.apache.openjpa.persistence.j
import java.sql.ResultSet;
import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
import javax.persistence.LockModeType;
@@ -343,4 +341,14 @@ public class JDBCFetchPlanImpl
public JDBCFetchPlan setQueryTimeout(int timeout) {
return (JDBCFetchPlan) super.setQueryTimeout(timeout);
}
+
+ @Override
+ public boolean getIgnoreDfgForFkSelect() {
+ return _fetch.getIgnoreDfgForFkSelect();
+ }
+
+ @Override
+ public void setIgnoreDfgForFkSelect(boolean b) {
+ _fetch.setIgnoreDfgForFkSelect(b);
+ }
}
Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/kernel/TestJDBCStoreOptSelect.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/kernel/TestJDBCStoreOptSelect.java?rev=1158027&r1=1158026&r2=1158027&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/kernel/TestJDBCStoreOptSelect.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/kernel/TestJDBCStoreOptSelect.java Mon Aug 15 21:54:40 2011
@@ -27,10 +27,12 @@ import org.apache.openjpa.meta.MetaDataR
import org.apache.openjpa.persistence.EntityManagerImpl;
import org.apache.openjpa.persistence.FetchPlan;
import org.apache.openjpa.persistence.OpenJPAEntityManagerSPI;
+import org.apache.openjpa.persistence.jdbc.JDBCFetchPlan;
import org.apache.openjpa.persistence.test.SQLListenerTestCase;
public class TestJDBCStoreOptSelect extends SQLListenerTestCase {
- Object[] props = new Object[] { CLEAR_TABLES, OptSelectEntity.class };
+ Object[] props = new Object[] { CLEAR_TABLES, OptSelectEntity.class
+ };
OptSelectEntity e1, e2;
@Override
@@ -50,10 +52,11 @@ public class TestJDBCStoreOptSelect exte
if (store instanceof JDBCStoreManager == false) {
fail("StoreManager is not an instanceof JDBCStoreManager");
}
- // Set this JDBCStoreManager property so that we will select FKs for fields that are in the DFG, but not
- // included in the current select.
- ((JDBCStoreManager) store).setIgnoreDfgForFkSelect(true);
-
+ // Set this JDBCFetchPlan property so that we will select FKs for fields that are in the DFG, but not
+ // included in the current load. If this property isn't set, the FK for eagerOneToOneOwner will not be
+ // selected.
+ ((JDBCFetchPlan)fp).setIgnoreDfgForFkSelect(true);
+
// Remove all relationships
fp.removeField(OptSelectEntity.class, "eagerOneToOne");
fp.removeField(OptSelectEntity.class, "eagerOneToOneOwner");
@@ -77,6 +80,7 @@ public class TestJDBCStoreOptSelect exte
fks++;
}
}
+ // We expected to find 2 FKs. One for each of the owners (lazyOneToOneOwner and eagerOneToOneOwner)
assertEquals(2, fks);
} finally {
if (em.getTransaction().isActive()) {