Hi again,

> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Sent: Thursday, March 20, 2003 9:37 AM
> To: [EMAIL PROTECTED]
> Subject: RE: how to send a real SQL query to OJB
> 
> 
> Hi Thomas,
> 
> That's OK.
> But in the case of a ReportQueries, you can't use your "real" 
> SQL query.

of course you can! That's what ReportQueries are meant for!
try the following:
String sql =
         "SELECT A.Artikel_Nr FROM Artikel A, Kategorien PG"
         + " WHERE A.Kategorie_Nr = PG.Kategorie_Nr"
         + " AND PG.Kategorie_Nr = 2";

Query q = QueryFactory.newQuery(Article.class, sql);
Iterator iter = broker.getReportQueryIteratorByQuery(q);


> 
> Is the example in FAQ still right if you consider your post?
> FAQ example:
> ----code----
> String sql =
>         "SELECT A.Artikel_Nr FROM Artikel A, Kategorien PG"
>         + " WHERE A.Kategorie_Nr = PG.Kategorie_Nr"
>         + " AND PG.Kategorie_Nr = 2";
> // get the QueryBySQL
> Query q2 = QueryFactory.newQuery(Article.class, sql);
> 
> Iterator iter2 = broker.getIteratorByQuery(q2);
> // or
> Collection col2 = broker.getCollectionByQuery(q2);
> ----code----

This is not a RportQuery! The Methods 
broker.getIteratorByQuery(q2) and 
broker.getCollectionByQuery(q2)

will materialize full java instances.

hth,
Thomas

> 
> Thanks 
> Sylvain
> 
> 
> -----Message d'origine-----
> De: Mahler Thomas [mailto:[EMAIL PROTECTED]
> Date: jeudi, 20. mars 2003 09:29
> �: 'OJB Users List'
> Objet: RE: how to send a real SQL query to OJB
> 
> 
> Hi Sylvain,
> 
> the methods broker.getCollectionByQuery(...) and
> broker.getObjectByQuery(...)
> return fully materialized objects.
> Thus OJB expects a query fed into those method to contain all 
> mapped columns
> of the underlying table.
> 
> If you want to use Queries to not produce full objects but 
> only a data view
> as with your "select workstationName from Workstation" query,
> you will have to use OJB ReportQueries.
> Here is an example:
> 
> Criteria crit = new Criteria();
> Collection results = new Vector();
> 
> ReportQueryByCriteria q = QueryFactory.newReportQuery(
>                             ProductGroup.class, crit);
> // define the 'columns' of the report
> q.setColumns(new String[] { "groupName",
>                             "sum(allArticlesInGroup.stock)",
>                             "sum(allArticlesInGroup.price)" });
> crit.addGroupBy("groupName");
> 
> Iterator iter = broker.getReportQueryIteratorByQuery(q);
> 
> HTH,
> Thomas
> 
> > -----Original Message-----
> > From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED]
> > Sent: Thursday, March 20, 2003 8:59 AM
> > To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
> > Subject: RE: how to send a real SQL query to OJB
> > 
> > 
> > Hi Armin,
> > 
> > I have seen the FAQ. Thanks.
> > 
> > But it doesn't work for me.
> > 
> > My SQL query is "select workstationName from Workstation".
> > From my database query analyzer, this query retrieves 36 rows.
> > 
> > In OJB I try:
> > ----code----
> > String sql = "select workstationName from Workstation";
> > 
> > Query query = QueryFactory.newQuery(Workstation.class, sql);
> > 
> > try {
> >     broker.beginTransaction();
> >     Collection col = broker.getCollectionByQuery(query);
> >                     
> >     int size = col.size();
> >     System.out.println(size);
> > 
> >     broker.commitTransaction();
> > } catch (Throwable t) {
> >     broker.abortTransaction();
> >     t.printStackTrace();
> > }
> > ----code----
> > 
> > The problem is that the size of the collection is 0!
> > OJB doesn't retrieve anything!
> > 
> > But if I try the query "select * from Workstation", it works!!
> > 
> > Have you an idea what's the problem?
> > 
> > I'm using OJB 0.9.5.
> > 
> > 
> > Thanks
> > Sylvain
> > 
> > 
> > -----Message d'origine-----
> > De: Armin Waibel [mailto:[EMAIL PROTECTED]
> > Date: mercredi, 19. mars 2003 16:12
> > �: OJB Users List
> > Objet: Re: how to send a real SQL query to OJB
> > 
> > 
> > Hi Sylvain,
> > 
> > see FAQ
> > http://db.apache.org/ojb/faq.html
> > 
> > topic "Is it possible to perform my own sql-queries in OJB?"
> > + "Can I directly obtain a java.sql.Connection within OJB?"
> > 
> > regards,
> > Armin
> > 
> > ----- Original Message -----
> > From: <[EMAIL PROTECTED]>
> > To: <[EMAIL PROTECTED]>
> > Sent: Wednesday, March 19, 2003 4:05 PM
> > Subject: how to send a real SQL query to OJB
> > 
> > 
> > Hello,
> > 
> > I have a String variable which contains a real SQL query like this:
> > "SELECT distinct(workstationName) FROM Workstation w, 
> > WntWorkstation t,
> > Package p, Package_Workstation r WHERE (w.workstationName 
> like '%' or
> > w.workstationName is NULL) order by w.workstationName"
> > 
> > How can I send this query (as written above) to OJB?
> > 
> > Thanks
> > Sylvain
> > 
> > 
> ---------------------------------------------------------------------
> > 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]
> > 
> > 
> > 
> ---------------------------------------------------------------------
> > 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]
> 
> 
> ---------------------------------------------------------------------
> 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