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); // not 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]

Reply via email to