Hi Sébastien,

with 1.3.2 we refactored major parts of SQL generation. It seams we have
introduced a bug with this changes. Can you please fill a new issue in jira?

Regards
Ralf

Am 30.05.2011 10:09, schrieb Sébastien Pérès-Labourdette:
> Hi all.
>
> I got an SQLException :
> 20 May 2011 13:22:32.356 [FATAL] [http-8080-Processor23]
> [org.exolab.castor.jdo.engine.SQLStatementLoad] - A fatal error occurred
> while loading com.omerin.nc.jdo.Article using SQL: SELECT
> nc_article.oid, nc_article.id, nc_article.designation,
> nc_article.description, nc_article.qterec, nc_article.ncfid,
> nc_article.unite_cd, nc_lot.oid FROM (nc_article LEFT JOIN nc_lot ON
> nc_article.oid=nc_lot.article_oid) WHERE nc_article.oid=?
> java.sql.SQLException: Unexpected token NC_ARTICLE, requires SELECT in
> statement [SELECT nc_article.oid, nc_article.id, nc_article.designation,
> nc_article.description, nc_article.qterec, nc_article.ncfid,
> nc_article.unite_cd, nc_lot.oid FROM (nc_article LEFT JOIN nc_lot ON
> nc_article.oid=nc_lot.article_oid) WHERE nc_article.oid=?]
>     at org.hsqldb.jdbc.Util.throwError(Unknown Source)
>     at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(Unknown Source)
>     at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)
>     at
> org.apache.commons.dbcp.DelegatingConnection.prepareStatement(DelegatingConnection.java:185)
>     at
> org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.prepareStatement(PoolingDataSource.java:278)
>     at
> org.castor.cpa.persistence.sql.engine.CastorStatement.prepareStatement(CastorStatement.java:141)
>     at
> org.exolab.castor.jdo.engine.SQLStatementLoad.executeStatement(SQLStatementLoad.java:327)
>     at org.exolab.castor.jdo.engine.SQLEngine.load(SQLEngine.java:396)
>     at org.exolab.castor.persist.ClassMolder.load(ClassMolder.java:564)
>     at org.exolab.castor.persist.LockEngine.load(LockEngine.java:475)
>     at
> org.castor.persist.AbstractTransactionContext.load(AbstractTransactionContext.java:553)
>     at
> org.castor.persist.AbstractTransactionContext.load(AbstractTransactionContext.java:437)
>     at
> org.castor.persist.resolver.ManyRelationResolver.load(ManyRelationResolver.java:254)
>     at org.exolab.castor.persist.ClassMolder.mold(ClassMolder.java:613)
>     at org.exolab.castor.persist.LockEngine.load(LockEngine.java:548)
>     at
> org.castor.persist.AbstractTransactionContext.load(AbstractTransactionContext.java:553)
>     at org.exolab.castor.persist.QueryResults.fetch(QueryResults.java:204)
>     at
> org.exolab.castor.jdo.engine.OQLQueryImpl$OQLEnumeration.hasMore(OQLQueryImpl.java:646)
>     at
> org.exolab.castor.jdo.engine.OQLQueryImpl$OQLEnumeration.hasMore(OQLQueryImpl.java:629)
>     at com.omerin.nc.NcService.getSelection(NcService.java:749)
>
> Since i deployed 1.3.2 jars.
>
> Jdo instance is
>     <database name="xxxxxx" engine="hsql">
>         <data-source class-name="org.apache.commons.dbcp.BasicDataSource">
>             <param name="driverClassName" value="org.hsqldb.jdbcDriver"/>
>             <param name="url"
> value="jdbc:hsqldb:hsql://hsqldb.omerin.com/xxxxxx"/>
>             <param name="validationQuery" value="select count(*) from
> information_schema.system_tables"/>
>             <param name="username" value="sa"/>
>             <param name="password" value=""/>
>             <param name="maxActive" value="20"/>
>             <param name="initialSize" value="2"/>
>             <param name="removeAbandoned" value="true"/>
>         </data-source>
>         <mapping href="../nc/jdo/nc.xml"/>
>     </database>
>
> And mapping file is attached
>
> The statement is a basic jdo query :
>         db.begin();
>         try {
>             QueryResults queryResults = null;
>             OQLQuery query = db.getOQLQuery("select n from
> com.omerin.nc.jdo.Ncf n where n.id in list " + targetCodeList);
>             queryResults = query.execute(Database.READONLY);
>             while (queryResults.hasMore()) {
>                 arl.add((Ncf) queryResults.next());
>             }
>             queryResults.close();
>             query.close();
>         } catch (Exception e) {
>             e.printStackTrace();
>         } finally {
>             db.commit();
>             db.close();
>         }
>
> Investigating the sql stuff, hsqldb doesn't like the parenthesis
> inserted by castor in the from clause :
> FROM (nc_article LEFT JOIN nc_lot ON nc_article.oid=nc_lot.article_oid)
>
> Is this a bug or something that can be tuned in castor.properties ?
>
> Thanks.
> SPL
>
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>     http://xircles.codehaus.org/manage_email


-- 

Syscon Ingenieurbüro für Meß- und Datentechnik GmbH
Ralf Joachim
Raiffeisenstraße 11
72127 Kusterdingen
Germany

Tel.   +49 7071 3690 52
Mobil: +49 173 9630135
Fax    +49 7071 3690 98

Internet: www.syscon.eu
E-Mail: [email protected]

Sitz der Gesellschaft: D-72127 Kusterdingen
Registereintrag: Amtsgericht Stuttgart, HRB 382295
Geschäftsleitung: Jens Joachim, Ralf Joachim

Reply via email to