You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-user@db.apache.org by Kamal Bhatt <kb...@tt.com.au> on 2006/10/09 14:08:05 UTC

QueryByCriteria is not working

Hi,
I have a postgres database and I have successfully added a record.

I am trying to query the record. To do this, I have the following code:

    public static Product findByTemplate(Product template)
    {
        PersistenceBroker broker = null;

        Product result = null;
        try
        {
            System.out.println("template: " + template.getId());
            broker = PersistenceBrokerFactory.defaultPersistenceBroker();
            QueryByCriteria query = new QueryByCriteria(template);
            result = (Product) broker.getObjectByQuery(query);
        }
        finally
        {
            if (broker != null) broker.close();
        }

        if (result != null)
            System.out.println("HELLO" + result.getName());
        return result;
    }

This is the tutorial code, modifies slightly.

Here is my main function:

    public static void main(String[] args)
    {
        Product newProduct = new Product();
        Product product = null;
        newProduct.setName("Sprocket");

        product = ProductDAO.findByTemplate(newProduct);
        System.out.println(product.getName());

    }

and here is my binding:

<class-descriptor
       class="au.com.tt.holpub.beans.Product"
       table="Product"
>
    <field-descriptor
       name="id"
       column="id"
       primarykey="true"
       autoincrement="false"
    />
    <field-descriptor
       name="name"
       column="name"
    />
    <field-descriptor
       name="price"
       column="price"
    />
    <field-descriptor
       name="stock"
       column="stock"
    />
</class-descriptor>

I have bumped up the root logging level to debug and here is the output:


[org.apache.ojb.broker.metadata.ConnectionRepository] DEBUG: New
descriptor was added: org.apache.ojb.broker.metadata.Jd
bcConnectionDescriptor@15f5897[
  jcd-alias=default
  default-connection=true
  dbms=PostgreSQL
  jdbc-level=3.0
  driver=org.postgresql.Driver
  protocol=jdbc
  sub-protocol=postgresql
  db-alias=//localhost/test
  user=kamal
  password=*****
  eager-release=false
  ConnectionPoolDescriptor={whenExhaustedAction=0, maxIdle=-1,
maxActive=30, maxWait=10000, removeAbandoned=false, numTe
stsPerEvictionRun=10, minEvictableIdleTimeMillis=600000,
testWhileIdle=false, testOnReturn=false, logAbandoned=false, mi
nIdle=0, fetchSize=0, removeAbandonedTimeout=300,
timeBetweenEvictionRunsMillis=-1, testOnBorrow=true}
  batchMode=false
  useAutoCommit=AUTO_COMMIT_SET_TRUE_AND_TEMPORARY_FALSE
  ignoreAutoCommitExceptions=false
  sequenceDescriptor=org.apache.ojb.broker.metadata.SequenceDescriptor@186d4c1[
     sequenceManagerClass=class
org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl
     Properties={autoNaming=true, seq.start=200000, grabSize=20}
]
]
[org.apache.ojb.broker.core.PersistenceBrokerFactoryBaseImpl] INFO: Create
new PB instance for PBKey org.apache.ojb.brok
er.PBKey: jcdAlias=default, user=kamal, password=*****, already created
persistence broker instances: 0
[org.apache.ojb.broker.cache.ObjectCacheFactory] INFO: Start creating new
ObjectCache instance
[org.apache.ojb.broker.cache.ObjectCacheFactory] INFO: Instantiate new
org.apache.ojb.broker.cache.CacheDistributor for
PB instance org.apache.ojb.broker.core.PersistenceBrokerImpl@b82368
[org.apache.ojb.broker.cache.ObjectCacheFactory] INFO: New ObjectCache
instance was created
[org.apache.ojb.broker.util.sequence.SequenceManagerFactory] DEBUG:
Default sequence manager class was org.apache.ojb.br
oker.util.sequence.SequenceManagerHighLowImpl
[org.apache.ojb.broker.util.sequence.SequenceManagerFactory] DEBUG: create
new sequence manager for broker org.apache.oj
b.broker.core.PersistenceBrokerImpl@b82368
[org.apache.ojb.broker.util.sequence.SequenceManagerFactory] DEBUG:
Jdbc-Connection-Descriptor 'default' use sequence ma
nager: class org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl
[org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias]
DEBUG: TableAlias(): using hints ? false
[org.apache.ojb.broker.accesslayer.StatementManager] DEBUG: closeResources
was called

When I return from my selection function I get no results.

Any clues?

Cheers.



---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org


Re: QueryByCriteria is not working

Posted by Kamal Bhatt <kb...@tt.com.au>.
>>  
> Do you have any primitive type properties in Product object - int, 
> long ...?
Yes I did. Thanks.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
>
>


-- 
Kamal Bhatt


---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org


Re: QueryByCriteria is not working

Posted by zkn <zk...@abv.bg>.
Kamal Bhatt wrote:
> Hi,
> I have a postgres database and I have successfully added a record.
>
> I am trying to query the record. To do this, I have the following code:
>
>     public static Product findByTemplate(Product template)
>     {
>         PersistenceBroker broker = null;
>
>         Product result = null;
>         try
>         {
>             System.out.println("template: " + template.getId());
>             broker = PersistenceBrokerFactory.defaultPersistenceBroker();
>             QueryByCriteria query = new QueryByCriteria(template);
>             result = (Product) broker.getObjectByQuery(query);
>         }
>         finally
>         {
>             if (broker != null) broker.close();
>         }
>
>         if (result != null)
>             System.out.println("HELLO" + result.getName());
>         return result;
>     }
>
> This is the tutorial code, modifies slightly.
>
> Here is my main function:
>
>     public static void main(String[] args)
>     {
>         Product newProduct = new Product();
>         Product product = null;
>         newProduct.setName("Sprocket");
>
>         product = ProductDAO.findByTemplate(newProduct);
>         System.out.println(product.getName());
>
>     }
>
> and here is my binding:
>
> <class-descriptor
>        class="au.com.tt.holpub.beans.Product"
>        table="Product"
> .
>
>     <field-descriptor
>        name="id"
>        column="id"
>        primarykey="true"
>        autoincrement="false"
>     />
>     <field-descriptor
>        name="name"
>        column="name"
>     />
>     <field-descriptor
>        name="price"
>        column="price"
>     />
>     <field-descriptor
>        name="stock"
>        column="stock"
>     />
> </class-descriptor>
>
> I have bumped up the root logging level to debug and here is the output:
>
>
> [org.apache.ojb.broker.metadata.ConnectionRepository] DEBUG: New
> descriptor was added: org.apache.ojb.broker.metadata.Jd
> bcConnectionDescriptor@15f5897[
>   jcd-alias=default
>   default-connection=true
>   dbms=PostgreSQL
>   jdbc-level=3.0
>   driver=org.postgresql.Driver
>   protocol=jdbc
>   sub-protocol=postgresql
>   db-alias=//localhost/test
>   user=kamal
>   password=*****
>   eager-release=false
>   ConnectionPoolDescriptor={whenExhaustedAction=0, maxIdle=-1,
> maxActive=30, maxWait=10000, removeAbandoned=false, numTe
> stsPerEvictionRun=10, minEvictableIdleTimeMillis=600000,
> testWhileIdle=false, testOnReturn=false, logAbandoned=false, mi
> nIdle=0, fetchSize=0, removeAbandonedTimeout=300,
> timeBetweenEvictionRunsMillis=-1, testOnBorrow=true}
>   batchMode=false
>   useAutoCommit=AUTO_COMMIT_SET_TRUE_AND_TEMPORARY_FALSE
>   ignoreAutoCommitExceptions=false
>   sequenceDescriptor=org.apache.ojb.broker.metadata.SequenceDescriptor@186d4c1[
>      sequenceManagerClass=class
> org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl
>      Properties={autoNaming=true, seq.start=200000, grabSize=20}
> .
>
> ]
> [org.apache.ojb.broker.core.PersistenceBrokerFactoryBaseImpl] INFO: Create
> new PB instance for PBKey org.apache.ojb.brok
> er.PBKey: jcdAlias=default, user=kamal, password=*****, already created
> persistence broker instances: 0
> [org.apache.ojb.broker.cache.ObjectCacheFactory] INFO: Start creating new
> ObjectCache instance
> [org.apache.ojb.broker.cache.ObjectCacheFactory] INFO: Instantiate new
> org.apache.ojb.broker.cache.CacheDistributor for
> PB instance org.apache.ojb.broker.core.PersistenceBrokerImpl@b82368
> [org.apache.ojb.broker.cache.ObjectCacheFactory] INFO: New ObjectCache
> instance was created
> [org.apache.ojb.broker.util.sequence.SequenceManagerFactory] DEBUG:
> Default sequence manager class was org.apache.ojb.br
> oker.util.sequence.SequenceManagerHighLowImpl
> [org.apache.ojb.broker.util.sequence.SequenceManagerFactory] DEBUG: create
> new sequence manager for broker org.apache.oj
> b.broker.core.PersistenceBrokerImpl@b82368
> [org.apache.ojb.broker.util.sequence.SequenceManagerFactory] DEBUG:
> Jdbc-Connection-Descriptor 'default' use sequence ma
> nager: class org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl
> [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias]
> DEBUG: TableAlias(): using hints ? false
> [org.apache.ojb.broker.accesslayer.StatementManager] DEBUG: closeResources
> was called
>
> When I return from my selection function I get no results.
>
> Any clues?
>
> Cheers.
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
>
>
>
>   
Do you have any primitive type properties in Product object - int, long 
...?

---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org