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

Reply via email to