The problem is that you are using SQL to query against the database and
Hibernate is expecting HQL.
I assume you added a table called lovtestdata manually. unfortunately hibernate
doesn't know that it
exists and will not allow you to query against it.
The easy solution is to use:
{{groovy}}
xc = xcontext.getContext()
hib = xc.getWiki().getHibernateStore();
hib.beginTransaction(xc);
try {
conn = hib.getSession().openConnection();
// conn will be a
http://download.oracle.com/javase/1.3/docs/api/java/sql/Connection.html
// which will give you raw access to the database.
// commit
hib.endTransaction(xc, true);
} catch (Exception e) {
// or rollback
hib.endTransaction(xc, false);
throw e;
}
{{/groovy}}
The "right" solution is to use XObjects and query for their properties using
HQL or XWQL instead of
raw database queries.
Caleb
On 01/06/2011 05:09 AM, Richardson Luke wrote:
> Hi All,
>
> I am having an issue with an error when running a velocity macro in xwiki.
>
> Within the Oracle database I have a table containing a list of page names. I
> am trying to run a script where the system takes this list, cycles through
> all pages within a space and deletes any pages who's name appears on the list.
>
> Here's what I have so far...
>
> ....
> #set($sql = " where doc.space='AlarmIdentifiers' AND doc.name IN (SELECT data
> FROM lovtestdata)")
> #DeletePagesLocal($sql)
> ....
>
> #macro(DeletePagesLocal $sql)
> #foreach($item in $xwiki.searchDocuments($sql))
> #set($itemdoc = $xwiki.getDocument($item))
> $itemdoc.delete()
> #end
> #end
>
> The error I am getting is:
>
> Caused by: com.xpn.xwiki.XWikiException: Error number 3223 in 3: Exception
> while searching documents with SQL [select distinct doc.space, doc.name from
> XWikiDocument as doc where (doc.hidden <> true or doc.hidden is null) and
> doc.space='AlarmIdentifiers' AND doc.name IN (SELECT data FROM lovtestdata)]
> Wrapped Exception: lovtestdata is not mapped [select distinct doc.space,
> doc.name from com.xpn.xwiki.doc.XWikiDocument as doc where (doc.hidden <>
> true or doc.hidden is null) and doc.space='AlarmIdentifiers' AND doc.name IN
> (SELECT data FROM lovtestdata)]
>
> Essentially it is saying that the table is not mapped.
>
> If anyone could point me in the right direction it would be great.
>
> Many thanks
> Luke
>
> LEGAL NOTICE
>
> This email and any files transmitted with it are confidential, may be
> privileged and are intended solely for the use of the individual or entity to
> whom they are addressed. If you are not the intended recipient, please
> telephone or email the sender on +44 (0) 1785 827 000 and delete this message
> and any attachment from your system; you must not copy or disclose the
> contents of this message or any attachment to any other person.
>
> Any views or opinions presented are solely those of the sender and do not
> necessarily represent those of Capula Limited and we accept no liability for
> its accuracy or completeness. Copyright in this email and any attachment
> created by us belongs to Capula Limited.
>
> Please ensure you have adequate virus protection before you open or detach
> any documents from this transmission. Capula Limited does not accept any
> liability for any loss or damage arising in any way from the receipt or use
> thereof. Any e-mail reply to this address may be subject to monitoring for
> operational reasons or lawful business practices.
>
> Capula Limited
> Registered No 00953504 England
> Registered Office Orion House, Stone, Staffordshire, ST15 0LT.
> _______________________________________________
> users mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/users
>
_______________________________________________
users mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/users