Hi, Markus.

I tired it and it work fine for me.

I created XWiki.OpenIdIdentifier class with StringProperty field. Added 
it to XWiki.Admin user page (identifier='someurl') and used this groovy 
script inside xwiki page for test:
<%
println xwiki.xWiki.store.queryManager.createQuery("select doc.fullName"
+" from XWikiDocument as doc, BaseObject as obj, StringProperty as prop"
+" where doc.fullName = obj.name and obj.className = 
'XWiki.OpenIdIdentifier' "
+" and obj.id=prop.id.id and prop.id.name='identifier' and prop.value = 
:identifier", "hql").bindValue("identifier", "someurl").execute()
%>
named query also works for me.

I recently commit some fix for hibernate queries. Maybe it will fix your 
problem. Please svn up and try again.

Try also old XWikiStoreInterface#search* methods if QueryManager will 
not work.

Markus Lanthaler wrote:
> Sorry for the late answer but I had problems with my installation after the 
> SVN update.
> Now I don't get any exception anymore - but also no result. I tried both, 
> creating a named query by adding the following code to queries.hbm.xml and 
> creating the query directly.
> 
>   <query name="getUserDocByOpenIdIdentifier">
>     select doc.fullName from XWikiDocument as doc, BaseObject as obj, 
> StringProperty as prop where doc.fullName=obj.name and 
> obj.className='XWiki.OpenIdIdentifier' and obj.id=prop.id.id and 
> prop.id.name='identifier' and prop.value=:identifier
>   </query>
> 
> This sets the statement member in the returned query 
> qm.getNamedQuery("getUserDocByOpenIdIdentifier") to 
> "getUserDocByOpenIdIdentifier". Is that right!?
> 
> I tried also to create the query directly (also including "select 
> doc.fullName"):
> 
> Query search_user2 = qm.getNamedQuery("getUserDocByOpenIdIdentifier");
> search_user2 = qm.createQuery("from XWikiDocument as doc, BaseObject as obj, 
> StringProperty as prop where doc.fullName = obj.name and obj.className = 
> 'XWiki.OpenIdIdentifier' and obj.id=prop.id.id and prop.id.name='identifier' 
> and prop.value = :identifier", Query.HQL);
> 
> search_user2.bindValue("identifier", openid_identifier);
> 
> List<XWikiDocument> found_users2 = search_user2.setLimit(1).execute();
> if (found_users2.size() > 0) {
>   return found_users2.get(0).getFullName();
> }
> 
> 
> Both queries returned empty lists.
> 
> I checked the DB with the MySQL Query Browser and saw that there are the 
> right entries in xwikistrings, xwikiobjects and xwikidoc so they are saved 
> in the right way. Are the table names converted automatically? There is no 
> table XWikiDocument in my DB but just xwikidoc for instance.

Hibernate automatically transform class names to its db tables.
Look xwiki.hbm.xml for mapping.

>...


-- 
   Artem Melentyev
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to