Author: sergiykarpenko
Date: 2009-12-02 12:13:15 -0500 (Wed, 02 Dec 2009)
New Revision: 914
Modified:
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/DBConstants.java
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/MultiDbJDBCConnection.java
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/SingleDbJDBCConnection.java
Log:
EXOJCR-246: has reference query fixed
Modified:
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/DBConstants.java
===================================================================
---
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/DBConstants.java 2009-12-02
16:48:44 UTC (rev 913)
+++
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/DBConstants.java 2009-12-02
17:13:15 UTC (rev 914)
@@ -230,7 +230,7 @@
/**
* FIND_REFERENCE
*/
- protected String FIND_REFERENCE;
+ protected String HAS_REFERENCE;
/**
* FIND_REFERENCED_NODES
Modified:
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/MultiDbJDBCConnection.java
===================================================================
---
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/MultiDbJDBCConnection.java 2009-12-02
16:48:44 UTC (rev 913)
+++
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/MultiDbJDBCConnection.java 2009-12-02
17:13:15 UTC (rev 914)
@@ -128,7 +128,7 @@
protected PreparedStatement renameNode;
- protected PreparedStatement findReference;
+ protected PreparedStatement hasReference;
protected PreparedStatement findAllReferencedNodes;
@@ -199,7 +199,7 @@
"select P.ID, P.PARENT_ID, P.VERSION, P.P_TYPE, P.P_MULTIVALUED,
P.NAME" + " from JCR_MREF R, JCR_MITEM P"
+ " where R.NODE_ID=? and P.ID=R.PROPERTY_ID and P.I_CLASS=2";
- FIND_REFERENCE = "select P.ID from JCR_MREF R, JCR_MITEM P where R.NODE_ID=?
and R.PROPERTY_ID=?";
+ HAS_REFERENCE = "select count(PROPERTY_ID) from JCR_MREF where NODE_ID=? and
PROPERTY_ID=?";
FIND_REFERENCED_NODES = "select N.ID from JCR_MREF R, JCR_MITEM N where
N.ID=R.NODE_ID";
@@ -727,16 +727,16 @@
protected boolean hasReferenceRecord(String nodeIdentifier, String
refPropertyIdentifier) throws SQLException
{
// TODO make query
- if (findReference == null)
- findReference = dbConnection.prepareStatement(FIND_REFERENCE);
+ if (hasReference == null)
+ hasReference = dbConnection.prepareStatement(HAS_REFERENCE);
else
- findReference.clearParameters();
+ hasReference.clearParameters();
- findReference.setString(1, nodeIdentifier);
- findReference.setString(1, refPropertyIdentifier);
- ResultSet result = findReference.executeQuery();
-
- return result.next();
+ hasReference.setString(1, nodeIdentifier);
+ hasReference.setString(2, refPropertyIdentifier);
+ ResultSet result = hasReference.executeQuery();
+ result.next();
+ return (result.getInt(1) == 1);
}
@Override
Modified:
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/SingleDbJDBCConnection.java
===================================================================
---
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/SingleDbJDBCConnection.java 2009-12-02
16:48:44 UTC (rev 913)
+++
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/SingleDbJDBCConnection.java 2009-12-02
17:13:15 UTC (rev 914)
@@ -127,7 +127,7 @@
protected PreparedStatement renameNode;
- protected PreparedStatement findReference;
+ protected PreparedStatement hasReference;
protected PreparedStatement findAllReferencedNodes;
@@ -205,8 +205,7 @@
"select P.ID, P.PARENT_ID, P.VERSION, P.P_TYPE, P.P_MULTIVALUED,
P.NAME" + " from JCR_SREF R, JCR_SITEM P"
+ " where R.NODE_ID=? and P.CONTAINER_NAME=? and P.ID=R.PROPERTY_ID and
P.I_CLASS=2";
- FIND_REFERENCE =
- "select P.ID from JCR_SREF R, JCR_SITEM P where R.NODE_ID=? and
R.PROPERTY_ID=? and P.ID = R.PROPERTY_ID";
+ HAS_REFERENCE = "select count(PROPERTY_ID) from JCR_SREF where NODE_ID=? and
PROPERTY_ID=?";
FIND_REFERENCED_NODES = "select N.ID from JCR_SREF R, JCR_SITEM N where
N.ID=R.NODE_ID";
@@ -744,16 +743,16 @@
protected boolean hasReferenceRecord(String nodeIdentifier, String
refPropertyIdentifier) throws SQLException
{
// TODO check queries
- if (findReference == null)
- findReference = dbConnection.prepareStatement(FIND_REFERENCE);
+ if (hasReference == null)
+ hasReference = dbConnection.prepareStatement(HAS_REFERENCE);
else
- findReference.clearParameters();
+ hasReference.clearParameters();
- findReference.setString(1, nodeIdentifier);
- findReference.setString(1, refPropertyIdentifier);
- ResultSet result = findReference.executeQuery();
-
- return result.next();
+ hasReference.setString(1, nodeIdentifier);
+ hasReference.setString(2, refPropertyIdentifier);
+ ResultSet result = hasReference.executeQuery();
+ result.next();
+ return (result.getInt(1) == 1);
}
@Override
Show replies by date