Louis-Marie, Edo, thanks again! Louis-Marie, you perfectly understand what I'm trying to get: to use comments on documents as criteria for selection. I understand comments are not intended to satisfy this objetive, but, at least for me, they are extremely useful to "draft" data models to be implemented in new XWiki classes. Just a kind of "extreme development" tool! :-) I think the "only" problem we are facing with this use is the kind of queries combining comments on the same document to retrive documents and properties of any class there instantiated. I'm truly learning a lot! I think I can understand the construction and it must answer the well-formed question Louis-Marie wrote down in his message, but I'm not able to understand the result. Here what I get... org.xwiki.query.internal.DefaultQuery@70687068 The integer after the @ changes it time I reload the page. I din't get neither a document fullName, nor an object. You can always check it in the same link posted before... http://www.idisantiago.es/bin/XWQL/SnapshotE0012012 In found DefaultQuery code here... http://maven.xwiki.org/site/clover/20120701/clover-platform-20120702/org/xwi... Perhaps this construct doesn't work in my plain old XWIKI ENTERPRISE 2.4.30451 installation? Thanks for your help! Ricardo
________________________________________ From: [email protected] [[email protected]] On Behalf Of Guillaume "Louis-Marie" Delhumeau [[email protected]] Sent: 22 May 2013 17:51 To: XWiki Users Subject: Re: [xwiki-users] XWQL query on several objects of the same class instantiated in the same doc
Hi.
I'm not sure I really understood what you need to do, but let me propose a solution anyway.
I think what you need is to get the all the documents that contains comments with "%doc.title%" content and where there is NO comment with '%Withdrawal:2011% in the content.
So, that's how I would solve the problem:
#set ($xwlquery1 = "FROM doc.object(XWiki. XWikiComments) AS commWHERE doc.translation = 0 AND and comm.comment LIKE :doctitle AND doc.fullName NOT IN (SELECT doc2.fullName FROM Document doc2, doc2.object(XWiki.XWikiComments) comm2 WHERE comm2.comment LIKE '%Withdrawal:2011%')") #set($results = $services.query.xwql($xwqlquery1).bindValue('doctitle', "%${doc.title}%"))
I didn't test it but it should work.
Louis-Marie.
2013/5/22 <[email protected]>
Hi! Thanks you both for answering!
I'm afraid that your proposals didn't solve the problem. Please, see here...
http://www.idisantiago.es/bin/XWQL/SnapshotE0012012
Both users have three comments each. This way:
XWD_ID:416379378 Gender:xxxxxxxx Withdrawal:20121017 Formely:XWiki.XWikiIDISE001
XWD_ID:946660794 Gender:xxxxxxxx Withdrawal:20111231 Formely:XWiki.XWikiIDISE001
Thus, I'm still not able to design a query to retrive ONLY user XWD_ID:416379378 based on comments :-( Your proposals answer with a list including both users n times. I'm not able neither of explain n in both cases... any idea will be welcome!
Thank you very much for your help,
Ricardo
________________________________________ From: [email protected] [[email protected]] On Behalf Of Guillaume "Louis-Marie" Delhumeau [[email protected]] Sent: 22 May 2013 13:02 To: XWiki Users Subject: Re: [xwiki-users] XWQL query on several objects of the same class instantiated in the same doc
Hi Ricardo and Edo,
2013/5/22 Edo Beutler <[email protected]>
Hi Ricardo
You are only checking in one object. So there has to be one object that contains the doc name, but not the withdrawal part which is fulfilled by the third object in your example. Whilst I don't recall ever having tried checking for multiple objects in XWQL, I would suspect this should work:
#set ($xwlquery1 = "from doc.object(XWiki.XWikiComments) as comm1, doc.object(XWiki.XWikiComments) as comm2 where doc.translation = 0 and comm1.comment like '%$doc.title%' and comm2.comment not like '%Withdrawal:2011%'")
You are right. But I think you should add "comm1 <> comm2" in your query to make it work.
Louis-Marie
Nota: A información contida nesta mensaxe e os seus posibles documentos adxuntos é privada e confidencial e está dirixida únicamente ó seu destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe, por favor elimínea. A distribución ou copia desta mensaxe non está autorizada. Nota: La información contenida en este mensaje y sus posibles documentos adjuntos es privada y confidencial y está dirigida únicamente a su destinatario/a. Si usted no es el/la destinatario/a original de este mensaje, por favor elimínelo. La distribución o copia de este mensaje no está autorizada. See more languages: http://www.sergas.es/aviso_confidencialidad.htm