Uploaded image for project: 'OJB'
  1. OJB
  2. OJB-62

addPathClass in QueryByCriteria does not consider inheritance

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Cannot Reproduce
    • None
    • 1.0.4
    • PB-API
    • None
    • postgresql, ojb 1.0.3

    Description

      I guess there is a bug in the addPathClass method. Orirginally I posted it on the mailing list and then you requested me to submit a new bug on this website:

      here is the code that I have
      public static Collection findModelsByAuthorsName(String aName) {

      PersistenceBroker broker = PersistenceBrokerFactory.defaultPersistenceBroker();

      try

      { Criteria crit = new Criteria(); crit.addLike("sources.author", aName); QueryByCriteria query = new QueryByCriteria(Model.class, crit, true); query.addPathClass("sources", Citation.class); return broker.getCollectionByQuery(query); }

      finally

      { broker.close(); }

      }

      when I run it I get an error (below). The problem is that Citation is a superclass that has a number of classes that implement it. If instead of Citation I use OJBCitation (which is not extended by any class) then everything works fine.
      Here is the definition of Citation:
      here is what I have:
      <class-descriptor class="edu.uci.ics.sigmoid.Citation">
      <extent-class class-ref="edu.uci.ics.sigmoid.OJBCitation" />
      <extent-class class-ref="edu.uci.ics.sigmoid.Article" />
      <extent-class class-ref="edu.uci.ics.sigmoid.Book" />
      <extent-class class-ref="edu.uci.ics.sigmoid.Booklet" />
      <extent-class class-ref="edu.uci.ics.sigmoid.Unpublished" />
      <extent-class class-ref="edu.uci.ics.sigmoid.TechReport" />
      <extent-class class-ref="edu.uci.ics.sigmoid.Proceedings" />
      <extent-class class-ref="edu.uci.ics.sigmoid.PhDThesis" />
      <extent-class class-ref="edu.uci.ics.sigmoid.MiscCitation" />
      <extent-class class-ref="edu.uci.ics.sigmoid.MastersThesis" />
      <extent-class class-ref="edu.uci.ics.sigmoid.Manual" />
      <extent-class class-ref="edu.uci.ics.sigmoid.InProceedings" />
      <extent-class class-ref="edu.uci.ics.sigmoid.InCollection" />
      <extent-class class-ref="edu.uci.ics.sigmoid.InBook" />
      <extent-class class-ref="edu.uci.ics.sigmoid.Conference" />
      </class-descriptor>

      Here is the exception I get.

      [org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG: createTableAlias2: path: sources* tableAlias: model_sources_knowledge_source A1
      [org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG: Result of getTableAlias(): null A2
      [org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG: SQL:SELECT DISTINCT A0._id,A0.name,A0.extended_description,A0.license_id,A0.unique_dbid,A0.comment FR\
      OM model A0 INNER JOIN (model_sources_knowledge_source A1 INNER JOIN null A2 ON A1.knowledge_source_id=A2._id) ON A0._id=A1.model_id WHERE author LIKE ?
      [org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR: SQLException during the execution of the query (for edu.uci.ics.sigmoid.OJBModel): ERROR: syntax error at or near \
      "null"
      ERROR: syntax error at or near "null"
      java.sql.SQLException: ERROR: syntax error at or near "null"
      at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1471)
      at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1256)
      at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:175)
      at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:389)
      at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:330)
      at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:240)

      Attachments

        Activity

          People

            Unassigned Unassigned
            kvpetrov Kirill Petrov
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: