| Newsgroups |
gmane.comp.jakarta.ojb.user |
| Message-ID |
<90AB4BA5F5B9BC43BD2862EE77B19DE80157F5F5@SMXS111107.bmi-net.local> |
Hi Armin,
many thanks for the patch, it works fine! :)
-----Ursprüngliche Nachricht-----
Von: Armin Waibel [mailto:[email protected]]
Gesendet: Samstag, 24. März 2007 00:19
An: OJB Users List
Betreff: Re: ReportQueryBySQL
Hi Norbert,
[email protected] wrote:
> Hello, we use OJB as persistence layer. Due to project specific
> needs, we've built another layer on top of OJB and we can/may not use
> jdbc at all anymore. The problem now is that we need queries that
> cannot be built with Query/Criteria objects because there is no
> proper mapping that could handle these scenarios. Is there a way to
> execute any kind of select statements without specifying a mapping
> and a target persistence class? I'd like to execute a select
> statement and get the result in the way as for ReportQueries. Eg:
> Query query = new QueryBySQL(null, selectString);
> persister.getReportQueryIteratorBySQLQuery(query); // note the 'SQL'
>
> The thing is that we cannot create mapping for any of these very
> specific queries, nor we can use jdbc.
>
> Any chance to get this done with OJB? Many thanks!
Sorry, currently this is not possible.
I setup a test to reproduce your issue. After some time and a hack (add
7 lines of code in 3 classes) I was able to execute arbitrary
sql-statements using a report query (based on latest version from SVN
OJB_1_0_RELEASE branch):
TEST
----
String sql = "select * from Artikel as A1 where A1.Artikelname =
'testReportQueryBySql_1174691153125'";
Query query = QueryFactory.newQuery(null, sql);
Iterator it = broker.getReportQueryIteratorByQuery(query);
while(it.hasNext())
{
Object o = it.next();
System.out.println("result: " + ArrayUtils.toString(o));
}
OUTPUT
------
result:
{200017,testReportQueryBySql_1174691153125,0,<null>,<null>,0.0,0,0,0,0}
result:
{200018,testReportQueryBySql_1174691153125,0,<null>,<null>,0.0,0,0,0,0}
OJB use the ResultSetMetadata of the ResultSet to determine the correct
java field type. So this solution requires a proper jdbc-driver
implementation.
Would this hack satisfy you?
regards,
Armin
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected] For
> additional commands, e-mail: [email protected]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]