On 01/22/2010 07:38 PM, cjdelisle (SVN) wrote:
> Author: cjdelisle
> Date: 2010-01-22 19:38:30 +0100 (Fri, 22 Jan 2010)
> New Revision: 26312
>
> Modified:
>
> platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/store/XWikiHibernateStore.java
> Log:
> XWIKI-4754 parameterize query in getTranslationList
>
> Modified:
> platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/store/XWikiHibernateStore.java
> ===================================================================
> ---
> platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/store/XWikiHibernateStore.java
> 2010-01-22 17:49:40 UTC (rev 26311)
> +++
> platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/store/XWikiHibernateStore.java
> 2010-01-22 18:38:30 UTC (rev 26312)
> @@ -3024,11 +3024,12 @@
>
> public List<String> getTranslationList(XWikiDocument doc, XWikiContext
> context) throws XWikiException
> {
> - String hql =
> - "select doc.language from XWikiDocument as doc where doc.space =
> '" + Utils.SQLFilter(doc.getSpace())
> - + "' and doc.name = '" + Utils.SQLFilter(doc.getName())
> - + "' and (doc.language<> '' or (doc.language is not null
> and '' is null))";
> - List<String> list = context.getWiki().search(hql, context);
> + String hql = "select doc.language from XWikiDocument as doc where
> doc.space = ? and doc.name = ? "
> + + "and (doc.language<> '' or (doc.language is not
> null and '' is null))";
doc.space and doc.name are explicitly used for historical reasons (in
the beginning doc.fullName was not stored in the database). For better
performance we could just use doc.fullName = ?.
> + ArrayList<String> params = new ArrayList<String>();
> + params.add(doc.getSpace());
> + params.add(doc.getName());
> + List<String> list = search(hql, 0, 0, params, context);
> return (list == null) ? new ArrayList<String>() : list;
> }
--
Sergiu Dumitriu
http://purl.org/net/sergiu/
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs