mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged V3.0 to HEAD (Derby fixes)
11315: Fixed ETHREEOH-283: Query for User Usages fixed for 3.0 schema 11421: Fix "ORA-00911: invalid character" (on second startup when using Oracle) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@11828 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -654,20 +654,20 @@
|
|||||||
assoc.target.id = :targetId
|
assoc.target.id = :targetId
|
||||||
</query>
|
</query>
|
||||||
|
|
||||||
<query name="node.GetNodesWithPropertyValuesByStringAndStore">
|
<sql-query name="node.GetNodesWithPropertyValuesByStringAndStore">
|
||||||
select
|
<return alias="n" class="org.alfresco.repo.domain.hibernate.NodeImpl"/>
|
||||||
node,
|
SELECT
|
||||||
node.typeQName
|
{n.*}
|
||||||
from
|
FROM
|
||||||
org.alfresco.repo.domain.hibernate.NodeImpl as node
|
alf_node n
|
||||||
join node.store as store
|
JOIN alf_store s on s.id = n.store_id
|
||||||
join node.properties prop
|
JOIN alf_node_properties p ON n.id = p.node_id
|
||||||
where
|
WHERE
|
||||||
store.protocol = :protocol and
|
s.protocol = :storeProtocol AND
|
||||||
store.identifier = :identifier and
|
s.identifier = :storeIdentifier AND
|
||||||
index(prop) = :propKey and
|
p.qname_id = :propQNameID AND
|
||||||
prop.stringValue = :propStringValue
|
p.string_value = :propStringValue
|
||||||
</query>
|
</sql-query>
|
||||||
|
|
||||||
<query name="node.GetNodesWithPropertyValuesByActualType">
|
<query name="node.GetNodesWithPropertyValuesByActualType">
|
||||||
select
|
select
|
||||||
|
@@ -460,6 +460,17 @@
|
|||||||
]]>
|
]]>
|
||||||
</query>
|
</query>
|
||||||
|
|
||||||
|
<sql-query name="person.getAllPeople">
|
||||||
|
SELECT
|
||||||
|
{n.*}
|
||||||
|
FROM
|
||||||
|
alf_node n
|
||||||
|
JOIN alf_node_properties p ON n.id = p.node_id
|
||||||
|
WHERE
|
||||||
|
p.qname_id = :qnameId AND
|
||||||
|
n.node_deleted = :False"
|
||||||
|
</sql-query>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
<query name="permission.GetAccessControlEntriesForAuthority">
|
<query name="permission.GetAccessControlEntriesForAuthority">
|
||||||
|
@@ -530,7 +530,7 @@ public class SchemaBootstrap extends AbstractLifecycleBean
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
ResultSet rs = stmt.executeQuery(
|
ResultSet rs = stmt.executeQuery(
|
||||||
"select min(applied_to_schema) from alf_applied_patch where applied_to_schema > -1;");
|
"select min(applied_to_schema) from alf_applied_patch where applied_to_schema > -1");
|
||||||
if (!rs.next())
|
if (!rs.next())
|
||||||
{
|
{
|
||||||
// Nothing in the table
|
// Nothing in the table
|
||||||
|
@@ -26,7 +26,6 @@ package org.alfresco.repo.node.db;
|
|||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
@@ -37,8 +36,6 @@ import javax.transaction.UserTransaction;
|
|||||||
import org.alfresco.i18n.I18NUtil;
|
import org.alfresco.i18n.I18NUtil;
|
||||||
import org.alfresco.model.ContentModel;
|
import org.alfresco.model.ContentModel;
|
||||||
import org.alfresco.repo.content.MimetypeMap;
|
import org.alfresco.repo.content.MimetypeMap;
|
||||||
import org.alfresco.repo.domain.ChildAssoc;
|
|
||||||
import org.alfresco.repo.domain.Node;
|
|
||||||
import org.alfresco.repo.node.BaseNodeServiceTest;
|
import org.alfresco.repo.node.BaseNodeServiceTest;
|
||||||
import org.alfresco.repo.node.StoreArchiveMap;
|
import org.alfresco.repo.node.StoreArchiveMap;
|
||||||
import org.alfresco.repo.node.db.NodeDaoService.NodePropertyHandler;
|
import org.alfresco.repo.node.db.NodeDaoService.NodePropertyHandler;
|
||||||
@@ -55,6 +52,7 @@ import org.alfresco.service.cmr.repository.StoreRef;
|
|||||||
import org.alfresco.service.namespace.QName;
|
import org.alfresco.service.namespace.QName;
|
||||||
import org.alfresco.service.transaction.TransactionService;
|
import org.alfresco.service.transaction.TransactionService;
|
||||||
import org.alfresco.util.Pair;
|
import org.alfresco.util.Pair;
|
||||||
|
import org.apache.commons.lang.mutable.MutableInt;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see org.alfresco.repo.node.db.DbNodeServiceImpl
|
* @see org.alfresco.repo.node.db.DbNodeServiceImpl
|
||||||
@@ -463,4 +461,31 @@ public class DbNodeServiceImplTest extends BaseNodeServiceTest
|
|||||||
// Run cleanup
|
// Run cleanup
|
||||||
ns.cleanup();
|
ns.cleanup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a property to a node and checks that it can be found using the low-level DB query
|
||||||
|
*/
|
||||||
|
public void testGetPropertyValuesByPropertyAndValue() throws Throwable
|
||||||
|
{
|
||||||
|
String findMeValue = "FIND ME";
|
||||||
|
nodeService.setProperty(rootNodeRef, PROP_QNAME_STRING_PROP_SINGLE, findMeValue);
|
||||||
|
final MutableInt count = new MutableInt(0);
|
||||||
|
// Add a property to the root node and check
|
||||||
|
NodePropertyHandler handler = new NodePropertyHandler()
|
||||||
|
{
|
||||||
|
public void handle(NodeRef nodeRef, QName nodeTypeQName, QName propertyQName, Serializable value)
|
||||||
|
{
|
||||||
|
if (nodeTypeQName.equals(ContentModel.TYPE_STOREROOT))
|
||||||
|
{
|
||||||
|
count.setValue(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
nodeDaoService.getPropertyValuesByPropertyAndValue(
|
||||||
|
rootNodeRef.getStoreRef(),
|
||||||
|
PROP_QNAME_STRING_PROP_SINGLE,
|
||||||
|
findMeValue,
|
||||||
|
handler);
|
||||||
|
assertTrue("Set value not found.", count.intValue() == 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -2678,11 +2678,6 @@ public class HibernateNodeDaoServiceImpl extends HibernateDaoSupport implements
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
final Long propQNameEntityId = propQNameEntity.getId();
|
final Long propQNameEntityId = propQNameEntity.getId();
|
||||||
final Long defaultLocaleEntityId = localeDAO.getDefaultLocalePair().getFirst();
|
|
||||||
final PropertyMapKey propKey = new PropertyMapKey();
|
|
||||||
propKey.setQnameId(propQNameEntityId);
|
|
||||||
propKey.setLocaleId(defaultLocaleEntityId);
|
|
||||||
propKey.setListIndex(0);
|
|
||||||
// Run the query
|
// Run the query
|
||||||
HibernateCallback callback = new HibernateCallback()
|
HibernateCallback callback = new HibernateCallback()
|
||||||
{
|
{
|
||||||
@@ -2690,9 +2685,9 @@ public class HibernateNodeDaoServiceImpl extends HibernateDaoSupport implements
|
|||||||
{
|
{
|
||||||
Query query = session
|
Query query = session
|
||||||
.getNamedQuery(HibernateNodeDaoServiceImpl.QUERY_GET_NODES_WITH_PROPERTY_VALUES_BY_STRING_AND_STORE)
|
.getNamedQuery(HibernateNodeDaoServiceImpl.QUERY_GET_NODES_WITH_PROPERTY_VALUES_BY_STRING_AND_STORE)
|
||||||
.setString("protocol", storeRef.getProtocol())
|
.setString("storeProtocol", storeRef.getProtocol())
|
||||||
.setString("identifier", storeRef.getIdentifier())
|
.setString("storeIdentifier", storeRef.getIdentifier())
|
||||||
.setParameter("propKey", propKey)
|
.setParameter("propQNameID", propQNameEntityId)
|
||||||
.setString("propStringValue", value)
|
.setString("propStringValue", value)
|
||||||
;
|
;
|
||||||
DirtySessionMethodInterceptor.setQueryFlushMode(session, query);
|
DirtySessionMethodInterceptor.setQueryFlushMode(session, query);
|
||||||
@@ -2706,7 +2701,7 @@ public class HibernateNodeDaoServiceImpl extends HibernateDaoSupport implements
|
|||||||
{
|
{
|
||||||
Node node = (Node) results.get(0);
|
Node node = (Node) results.get(0);
|
||||||
NodeRef nodeRef = node.getNodeRef();
|
NodeRef nodeRef = node.getNodeRef();
|
||||||
QNameEntity nodeTypeQNameEntity = (QNameEntity) results.get(1);
|
QNameEntity nodeTypeQNameEntity = node.getTypeQName();
|
||||||
QName nodeTypeQName = nodeTypeQNameEntity.getQName();
|
QName nodeTypeQName = nodeTypeQNameEntity.getQName();
|
||||||
handler.handle(nodeRef, nodeTypeQName, propertyQName, value);
|
handler.handle(nodeRef, nodeTypeQName, propertyQName, value);
|
||||||
// Flush if required
|
// Flush if required
|
||||||
|
Reference in New Issue
Block a user