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 2010/04/01 15:44:39 UTC
svn commit: r929971 - in /openjpa/trunk:
openjpa-kernel/src/main/java/org/apache/openjpa/meta/
openjpa-persistence/src/main/java/org/apache/openjpa/persistence/
Author: ppoddar
Date: Thu Apr 1 13:44:38 2010
New Revision: 929971
URL: http://svn.apache.org/viewvc?rev=929971&view=rev
Log:
OPENJPA-1604: Add lock mode to QueryMetaData
Modified:
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/QueryMetaData.java
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java
Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/QueryMetaData.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/QueryMetaData.java?rev=929971&r1=929970&r2=929971&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/QueryMetaData.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/QueryMetaData.java Thu Apr 1 13:44:38 2010
@@ -58,7 +58,8 @@ public class QueryMetaData
private String _resultSetMappingName;
private int _lineNum;
private int _colNum;
-
+ private int _lockMode;
+
/**
* Construct with the given name.
*/
@@ -156,6 +157,14 @@ public class QueryMetaData
public void setQueryString(String query) {
_query = query;
}
+
+ public void setLockMode(int mode) {
+ _lockMode = mode;
+ }
+
+ public int getLockMode() {
+ return _lockMode;
+ }
/**
* Query hints.
@@ -209,6 +218,7 @@ public class QueryMetaData
query.setReadOnly(_readOnly.booleanValue());
if (_resultSetMappingName != null)
query.setResultMapping(null, _resultSetMappingName);
+ query.getFetchConfiguration().setReadLockLevel(_lockMode);
}
/**
Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java?rev=929971&r1=929970&r2=929971&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java Thu Apr 1 13:44:38 2010
@@ -94,6 +94,7 @@ import org.apache.openjpa.event.BeanLife
import org.apache.openjpa.event.LifecycleCallbacks;
import org.apache.openjpa.event.LifecycleEvent;
import org.apache.openjpa.event.MethodLifecycleCallbacks;
+import org.apache.openjpa.kernel.LockLevels;
import org.apache.openjpa.kernel.QueryLanguages;
import org.apache.openjpa.kernel.jpql.JPQLParser;
import org.apache.openjpa.lib.conf.Configurations;
@@ -1775,11 +1776,10 @@ public class AnnotationPersistenceMetaDa
meta = getRepository().addQueryMetaData(_cls, query.name());
meta.setQueryString(query.query());
meta.setLanguage(JPQLParser.LANG_JPQL);
+ meta.setLockMode(MixedLockLevelsHelper.toLockLevel(query.lockMode()));
for (QueryHint hint : query.hints())
meta.addHint(hint.name(), hint.value());
- if (query.lockMode() != null) {
- meta.addHint("openjpa.FetchPlan.ReadLockMode", query.lockMode());
- }
+
meta.setSource(getSourceFile(), (el instanceof Class) ? el : null,
SourceTracker.SRC_ANNOTATIONS);
if (isMetaDataMode())
Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java?rev=929971&r1=929970&r2=929971&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java Thu Apr 1 13:44:38 2010
@@ -50,6 +50,7 @@ import org.apache.openjpa.kernel.Delegat
import org.apache.openjpa.kernel.DelegatingResultList;
import org.apache.openjpa.kernel.FetchConfiguration;
import org.apache.openjpa.kernel.Filters;
+import org.apache.openjpa.kernel.LockLevels;
import org.apache.openjpa.kernel.PreparedQuery;
import org.apache.openjpa.kernel.PreparedQueryCache;
import org.apache.openjpa.kernel.QueryLanguages;
@@ -508,7 +509,7 @@ public class QueryImpl<X> implements Ope
return false;
}
FetchConfiguration fetch = _query.getFetchConfiguration();
- if (fetch.getReadLockLevel() != 0)
+ if (fetch.getReadLockLevel() != LockLevels.LOCK_NONE)
return false;
Boolean registered = cache.register(_id, _query, fetch);
boolean alreadyCached = (registered == null);
Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java?rev=929971&r1=929970&r2=929971&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java Thu Apr 1 13:44:38 2010
@@ -1674,7 +1674,7 @@ public class XMLPersistenceMetaDataParse
meta.setLanguage(JPQLParser.LANG_JPQL);
String lockModeStr = attrs.getValue("lock-mode");
if (lockModeStr != null) {
- meta.addHint("openjpa.FetchPlan.ReadLockMode", LockModeType.valueOf(lockModeStr));
+ meta.setLockMode(MixedLockLevelsHelper.toLockLevel(LockModeType.valueOf(lockModeStr)));
}
Locator locator = getLocation().getLocator();
if (locator != null) {