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