mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +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
|
||||
</query>
|
||||
|
||||
<query name="node.GetNodesWithPropertyValuesByStringAndStore">
|
||||
select
|
||||
node,
|
||||
node.typeQName
|
||||
from
|
||||
org.alfresco.repo.domain.hibernate.NodeImpl as node
|
||||
join node.store as store
|
||||
join node.properties prop
|
||||
where
|
||||
store.protocol = :protocol and
|
||||
store.identifier = :identifier and
|
||||
index(prop) = :propKey and
|
||||
prop.stringValue = :propStringValue
|
||||
</query>
|
||||
<sql-query name="node.GetNodesWithPropertyValuesByStringAndStore">
|
||||
<return alias="n" class="org.alfresco.repo.domain.hibernate.NodeImpl"/>
|
||||
SELECT
|
||||
{n.*}
|
||||
FROM
|
||||
alf_node n
|
||||
JOIN alf_store s on s.id = n.store_id
|
||||
JOIN alf_node_properties p ON n.id = p.node_id
|
||||
WHERE
|
||||
s.protocol = :storeProtocol AND
|
||||
s.identifier = :storeIdentifier AND
|
||||
p.qname_id = :propQNameID AND
|
||||
p.string_value = :propStringValue
|
||||
</sql-query>
|
||||
|
||||
<query name="node.GetNodesWithPropertyValuesByActualType">
|
||||
select
|
||||
|
@@ -460,6 +460,17 @@
|
||||
]]>
|
||||
</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">
|
||||
|
@@ -530,7 +530,7 @@ public class SchemaBootstrap extends AbstractLifecycleBean
|
||||
try
|
||||
{
|
||||
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())
|
||||
{
|
||||
// Nothing in the table
|
||||
|
@@ -26,7 +26,6 @@ package org.alfresco.repo.node.db;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
@@ -37,8 +36,6 @@ import javax.transaction.UserTransaction;
|
||||
import org.alfresco.i18n.I18NUtil;
|
||||
import org.alfresco.model.ContentModel;
|
||||
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.StoreArchiveMap;
|
||||
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.transaction.TransactionService;
|
||||
import org.alfresco.util.Pair;
|
||||
import org.apache.commons.lang.mutable.MutableInt;
|
||||
|
||||
/**
|
||||
* @see org.alfresco.repo.node.db.DbNodeServiceImpl
|
||||
@@ -463,4 +461,31 @@ public class DbNodeServiceImplTest extends BaseNodeServiceTest
|
||||
// Run 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;
|
||||
}
|
||||
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
|
||||
HibernateCallback callback = new HibernateCallback()
|
||||
{
|
||||
@@ -2690,9 +2685,9 @@ public class HibernateNodeDaoServiceImpl extends HibernateDaoSupport implements
|
||||
{
|
||||
Query query = session
|
||||
.getNamedQuery(HibernateNodeDaoServiceImpl.QUERY_GET_NODES_WITH_PROPERTY_VALUES_BY_STRING_AND_STORE)
|
||||
.setString("protocol", storeRef.getProtocol())
|
||||
.setString("identifier", storeRef.getIdentifier())
|
||||
.setParameter("propKey", propKey)
|
||||
.setString("storeProtocol", storeRef.getProtocol())
|
||||
.setString("storeIdentifier", storeRef.getIdentifier())
|
||||
.setParameter("propQNameID", propQNameEntityId)
|
||||
.setString("propStringValue", value)
|
||||
;
|
||||
DirtySessionMethodInterceptor.setQueryFlushMode(session, query);
|
||||
@@ -2706,7 +2701,7 @@ public class HibernateNodeDaoServiceImpl extends HibernateDaoSupport implements
|
||||
{
|
||||
Node node = (Node) results.get(0);
|
||||
NodeRef nodeRef = node.getNodeRef();
|
||||
QNameEntity nodeTypeQNameEntity = (QNameEntity) results.get(1);
|
||||
QNameEntity nodeTypeQNameEntity = node.getTypeQName();
|
||||
QName nodeTypeQName = nodeTypeQNameEntity.getQName();
|
||||
handler.handle(nodeRef, nodeTypeQName, propertyQName, value);
|
||||
// Flush if required
|
||||
|
Reference in New Issue
Block a user