Using HibernateQL in XWiki ?

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Using HibernateQL in XWiki ?

Xavier MOGHRABI
Hi,

I'd like to do a kind of SQL request with XWiki in order to get a data store
in an Object.

Here's my problem :
1 I've created a Class in XWiki in order to create a form for users. In this
class I've named one of a property ID that should allow me to distinct
objects.

2. I've created a template associated to this class that contain a single
Object of this class.

3. I've created a Form to allow users to fill the data. The problem I have is
that I have to give a unique name for the document created. Thus I thought to
use to ID property that I've created. So I wanted to do a SQL Query to get
the maximum id and by this way my new document name would be Data.Doc"ID+1".
The problem is that I don't know how to access the desired property with
XWiki. I've read the documentation about the data model :
http://www.xwiki.org/xwiki/bin/view/DevGuide/Database+Schema but I didn't
find the solution to my problem.

If I execute the following Query (my class is XWiki.CFPClass):
#set ($sql = "select distinct obj from XWikiDocument as doc, BaseObject as obj
where obj.name=doc.fullName and obj.className='XWiki.CFPClass' and
doc.name!='CFPClassTemplate'")

with this code :
#foreach ($item in $xwiki.search($sql))
$item <br />
#end

I get fine my objects :
CFP.Test 0 XWiki.CFPClass
CFP.Test1 0 XWiki.CFPClass  

But I don't know how can I reach the property ? The property class seems to be
'BaseProperty' but I don't know how can I add it with the query.

if I test a query like this :
select distinct prop.name from XWikiDocument as doc, BaseObject as obj,
BaseProperty as prop where obj.name=doc.fullName and
obj.className='XWiki.CFPClass' and doc.name!='CFPClassTemplate'

I get all the existing properties even the ones which aren't in the class
XWiki.CFPClass.

Any Idea ?

--
Xavier MOGHRABI - Consortium ObjectWeb
Email: xavier.moghrabi at objectweb.org
Phone: +33 4 76 61 52 35 - Skype ID: xavier.moghrabi.bureau



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
ObjectWeb mailing lists service home page: http://www.objectweb.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Using HibernateQL in XWiki ?

Xavier MOGHRABI
With the following query :
#set ($sql = "select distinct max(prop.value) from LongProperty as prop where
prop.name='id'")
I get "2".

Thus I can get the last id. But how can I know that the "id" property belongs
to my Class 'CFPClass' ? If there were an other class with the id property,
perhaps I wouldn't have the same result ?

Can someone explain me how should I explain that I want "the last value of the
property id of my class CFPClass" ?

Thanks

--
Xavier MOGHRABI - Consortium ObjectWeb
Email: xavier.moghrabi at objectweb.org
Phone: +33 4 76 61 52 35 - Skype ID: xavier.moghrabi.bureau


Le Mardi 18 Octobre 2005 18:55, Xavier MOGHRABI a écrit :

> Hi,
>
> I'd like to do a kind of SQL request with XWiki in order to get a data
> store in an Object.
>
> Here's my problem :
> 1 I've created a Class in XWiki in order to create a form for users. In
> this class I've named one of a property ID that should allow me to distinct
> objects.
>
> 2. I've created a template associated to this class that contain a single
> Object of this class.
>
> 3. I've created a Form to allow users to fill the data. The problem I have
> is that I have to give a unique name for the document created. Thus I
> thought to use to ID property that I've created. So I wanted to do a SQL
> Query to get the maximum id and by this way my new document name would be
> Data.Doc"ID+1". The problem is that I don't know how to access the desired
> property with XWiki. I've read the documentation about the data model :
> http://www.xwiki.org/xwiki/bin/view/DevGuide/Database+Schema but I didn't
> find the solution to my problem.
>
> If I execute the following Query (my class is XWiki.CFPClass):
> #set ($sql = "select distinct obj from XWikiDocument as doc, BaseObject as
> obj where obj.name=doc.fullName and obj.className='XWiki.CFPClass' and
> doc.name!='CFPClassTemplate'")
>
> with this code :
> #foreach ($item in $xwiki.search($sql))
> $item <br />
> #end
>
> I get fine my objects :
> CFP.Test 0 XWiki.CFPClass
> CFP.Test1 0 XWiki.CFPClass
>
> But I don't know how can I reach the property ? The property class seems to
> be 'BaseProperty' but I don't know how can I add it with the query.
>
> if I test a query like this :
> select distinct prop.name from XWikiDocument as doc, BaseObject as obj,
> BaseProperty as prop where obj.name=doc.fullName and
> obj.className='XWiki.CFPClass' and doc.name!='CFPClassTemplate'
>
> I get all the existing properties even the ones which aren't in the class
> XWiki.CFPClass.
>
> Any Idea ?


--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
ObjectWeb mailing lists service home page: http://www.objectweb.org/wws

attachment0 (196 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Using HibernateQL in XWiki ?

Ludovic Dubost

You need to add some joins

select distinct max(prop.value) from BaseObject as obj, LongProperty as prop where
obj.className='XWiki.CFPClass' and obj.id=prop.id.id and prop.name='id'


Ludovic

Xavier MOGHRABI wrote:

> With the following query :
> #set ($sql = "select distinct max(prop.value) from LongProperty as prop where
> prop.name='id'")
> I get "2".
>
> Thus I can get the last id. But how can I know that the "id" property belongs
> to my Class 'CFPClass' ? If there were an other class with the id property,
> perhaps I wouldn't have the same result ?
>
> Can someone explain me how should I explain that I want "the last value of the
> property id of my class CFPClass" ?
>
> Thanks
>
>  
> ------------------------------------------------------------------------
>
>
> --
> You receive this message as a subscriber of the [hidden email] mailing list.
> To unsubscribe: mailto:[hidden email]
> For general help: mailto:[hidden email]?subject=help
> ObjectWeb mailing lists service home page: http://www.objectweb.org/wws
>  

--
Ludovic Dubost
XPertNet: http://www.xpertnet.fr/
Blog: http://www.ludovic.org/blog/
XWiki: http://www.xwiki.com
Skype: ldubost AIM: nvludo Yahoo: ludovic




--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
ObjectWeb mailing lists service home page: http://www.objectweb.org/wws