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 Clay Mitchell <cl...@pfd.net> on 2004/02/07 18:16:02 UTC
Help, I'm stuck and I can't get out! (Infinite Loop)
I seem to have gotten myself stuck in a infinite loop here...
Any idea what it's doing and why?
Thanks
-Clay
[org.apache.ojb.broker.core.QueryReferenceBroker] DEBUG:
getCollectionByQuery (class
org.apache.ojb.broker.util.collections.RemovalAwareCollection, class
com.exigentic.onyx.ProductType, Query from class
com.exigentic.onyx.ProductType where [id IN [79, 28, 112]])
[org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias]
DEBUG: TableAlias(): using hints ? false
[org.apache.ojb.broker.core.QueryReferenceBroker] DEBUG:
getCollectionByQuery (class
org.apache.ojb.broker.util.collections.RemovalAwareCollection, class
com.exigentic.onyx.Specification, Query from class
com.exigentic.onyx.Specification where [id IN [79, 28, 112]])
[org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias]
DEBUG: TableAlias(): using hints ? false
[org.apache.ojb.broker.core.QueryReferenceBroker] DEBUG:
getCollectionByQuery (class
org.apache.ojb.broker.util.collections.RemovalAwareCollection, class
com.exigentic.onyx.Product, Query from class com.exigentic.onyx.Product
where [id IN [79, 28, 112]])
[org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias]
DEBUG: TableAlias(): using hints ? false
[org.apache.ojb.broker.core.QueryReferenceBroker] DEBUG:
getCollectionByQuery (class
org.apache.ojb.broker.util.collections.RemovalAwareCollection, class
com.exigentic.onyx.SpecType, Query from class
com.exigentic.onyx.SpecType where [id IN [79, 28, 112]])
[org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias]
DEBUG: TableAlias(): using hints ? false
[org.apache.ojb.broker.core.QueryReferenceBroker] DEBUG:
getCollectionByQuery (class
org.apache.ojb.broker.util.collections.RemovalAwareCollection, class
com.exigentic.onyx.Specification, Query from class
com.exigentic.onyx.Specification where [specId = 28])
[org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias]
DEBUG: TableAlias(): using hints ? false
###### Here's my repository:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE descriptor-repository PUBLIC "-//Apache Software
Foundation//DTD OJB Repository//EN" "repository.dtd">
<descriptor-repository version="1.0" isolation-level="read-uncommitted">
<jdbc-connection-descriptor jcd-alias="default"
default-connection="true" platform="PostgreSQL" jdbc-level="3.0"
driver="org.postgresql.Driver" protocol="jdbc" subprotocol="postgresql"
dbalias="//192.168.1.101:5432/onyx" username="postgres"
password="t30a6az8z" eager-release="false" batch-mode="false"
useAutoCommit="1" ignoreAutoCommitExceptions="false">
<connection-pool maxActive="21" validationQuery=""/>
<sequence-manager
className="org.apache.ojb.broker.util.sequence.SequenceManagerNextValImpl">
<attribute attribute-name="autoNaming" attribute-value="true"/>
</sequence-manager>
</jdbc-connection-descriptor>
<class-descriptor class="com.exigentic.onyx.Account" table="ACCOUNT">
<field-descriptor name="id" primarykey="true" default-fetch="true"
autoincrement="true" sequence-name="account_seq'::text"
column="ACCOUNT_ID" jdbc-type="INTEGER"/>
<field-descriptor name="email" nullable="false" default-fetch="true"
column="EMAIL" jdbc-type="VARCHAR"/>
<field-descriptor name="password" nullable="false"
default-fetch="true" column="PASSWORD" jdbc-type="VARCHAR"/>
<field-descriptor name="firstName" nullable="false"
default-fetch="true" column="NAME_FIRST" jdbc-type="VARCHAR"/>
<field-descriptor name="lastName" nullable="false"
default-fetch="true" column="NAME_LAST" jdbc-type="VARCHAR"/>
<field-descriptor name="company" default-fetch="true" column="COMPANY"
jdbc-type="VARCHAR"/>
<field-descriptor name="phone" nullable="false" default-fetch="true"
column="PHONE" jdbc-type="VARCHAR"/>
<field-descriptor name="fax" default-fetch="true" column="FAX"
jdbc-type="VARCHAR"/>
<field-descriptor name="addr1" nullable="false" default-fetch="true"
column="ADDR_1" jdbc-type="VARCHAR"/>
<field-descriptor name="addr2" default-fetch="true" column="ADDR_2"
jdbc-type="VARCHAR"/>
<field-descriptor name="city" nullable="false" default-fetch="true"
column="CITY" jdbc-type="VARCHAR"/>
<field-descriptor name="state" nullable="false" default-fetch="true"
column="STATE" jdbc-type="VARCHAR"/>
<field-descriptor name="country" nullable="false" default-fetch="true"
column="COUNTRY" jdbc-type="VARCHAR"/>
<field-descriptor name="zip" nullable="false" default-fetch="true"
column="ZIP" jdbc-type="VARCHAR"/>
<field-descriptor name="security" nullable="false"
default-fetch="true" column="SECURITY" jdbc-type="INTEGER"/>
<field-descriptor name="sourceDate" nullable="false"
default-fetch="true" column="SOURCE_DATE" jdbc-type="TIMESTAMP"
conversion="org.apache.ojb.broker.accesslayer.conversions.JavaDate2SqlTimestampFieldConversion"/>
</class-descriptor>
<class-descriptor class="com.exigentic.onyx.Option" table="OPTION">
<field-descriptor name="id" primarykey="true" default-fetch="true"
autoincrement="true" sequence-name="option_seq'::text"
column="OPTION_ID" jdbc-type="INTEGER"/>
<field-descriptor name="productId" nullable="false"
default-fetch="true" column="PRODUCT_ID" jdbc-type="INTEGER"/>
<field-descriptor name="childId" nullable="false" default-fetch="true"
column="PRODUCT_OPTION" jdbc-type="INTEGER"/>
</class-descriptor>
<class-descriptor class="com.exigentic.onyx.Product" table="PRODUCT">
<field-descriptor name="id" primarykey="true" default-fetch="true"
autoincrement="true" sequence-name="product_seq'::text"
column="PRODUCT_ID" jdbc-type="INTEGER"/>
<field-descriptor name="typeId" nullable="false" default-fetch="true"
autoincrement="true" sequence-name="type_seq'::text" column="TYPE_ID"
jdbc-type="INTEGER"/>
<field-descriptor name="code" nullable="false" default-fetch="true"
column="CODE" jdbc-type="VARCHAR"/>
<field-descriptor name="name" nullable="false" default-fetch="true"
column="NAME" jdbc-type="VARCHAR"/>
<field-descriptor name="descr" nullable="false" default-fetch="true"
column="DESCR" jdbc-type="VARCHAR"/>
<field-descriptor name="option" nullable="false" default-fetch="true"
column="OPTION" jdbc-type="CHAR"/>
<field-descriptor name="distributor" nullable="false"
default-fetch="true" column="DISTRIBUTOR" jdbc-type="CHAR"/>
<field-descriptor name="distPrice" default-fetch="true"
column="DIST_PRICE" jdbc-type="DOUBLE"/>
<field-descriptor name="listPrice" default-fetch="true"
column="LIST_PRICE" jdbc-type="DOUBLE"/>
<field-descriptor name="highlight" default-fetch="true"
column="HIGHLIGHT" jdbc-type="CHAR"/>
<reference-descriptor name="productType"
class-ref="com.exigentic.onyx.ProductType" auto-update="false"
auto-delete="false">
<foreignkey field-ref="id"/>
</reference-descriptor>
<collection-descriptor name="specs"
element-class-ref="com.exigentic.onyx.Specification" auto-update="false"
auto-delete="false">
<inverse-foreignkey field-ref="id"/>
</collection-descriptor>
</class-descriptor>
<class-descriptor class="com.exigentic.onyx.Image" table="PRODUCT_IMAGE">
<field-descriptor name="id" primarykey="true" default-fetch="true"
autoincrement="true" sequence-name="image_seq'::text" column="IMAGE_ID"
jdbc-type="INTEGER"/>
<field-descriptor name="productId" default-fetch="true"
column="PRODUCT_ID" jdbc-type="INTEGER"/>
<field-descriptor name="image" nullable="false" default-fetch="true"
column="IMAGE" jdbc-type="VARCHAR"/>
<field-descriptor name="defaultImage" nullable="false"
default-fetch="true" column="DEFAULT_IMAGE" jdbc-type="CHAR"/>
</class-descriptor>
<class-descriptor class="com.exigentic.onyx.Specification"
table="PRODUCT_SPECIFICATION">
<field-descriptor name="id" primarykey="true" default-fetch="true"
autoincrement="true" sequence-name="spec_seq'::text" column="SPEC_ID"
jdbc-type="INTEGER"/>
<field-descriptor name="productId" primarykey="true"
default-fetch="true" column="PRODUCT_ID" jdbc-type="INTEGER"/>
<field-descriptor name="specId" primarykey="true" default-fetch="true"
column="SPECIFICATION_ID" jdbc-type="INTEGER"/>
<field-descriptor name="value" nullable="false" default-fetch="true"
column="VALUE" jdbc-type="VARCHAR"/>
<reference-descriptor name="product"
class-ref="com.exigentic.onyx.Product" auto-update="false"
auto-delete="false">
<foreignkey field-ref="id"/>
</reference-descriptor>
<reference-descriptor name="specType"
class-ref="com.exigentic.onyx.SpecType" auto-update="false"
auto-delete="false">
<foreignkey field-ref="id"/>
</reference-descriptor>
</class-descriptor>
<class-descriptor class="com.exigentic.onyx.ProductType"
table="PRODUCT_TYPE">
<field-descriptor name="id" primarykey="true" default-fetch="true"
autoincrement="true" sequence-name="type_seq'::text" column="TYPE_ID"
jdbc-type="INTEGER"/>
<field-descriptor name="name" nullable="false" default-fetch="true"
column="NAME" jdbc-type="VARCHAR"/>
<field-descriptor name="descr" default-fetch="true" column="DESCR"
jdbc-type="VARCHAR"/>
<collection-descriptor name="productList"
element-class-ref="com.exigentic.onyx.Product" auto-update="false"
auto-delete="false">
<inverse-foreignkey field-ref="typeId"/>
</collection-descriptor>
</class-descriptor>
<class-descriptor class="com.exigentic.onyx.SpecType"
table="SPECIFICATION_TYPE">
<field-descriptor name="id" primarykey="true" default-fetch="true"
autoincrement="true" sequence-name="specification_seq'::text"
column="SPECIFICATION_ID" jdbc-type="INTEGER"/>
<field-descriptor name="name" nullable="false" default-fetch="true"
column="NAME" jdbc-type="VARCHAR"/>
<field-descriptor name="descr" default-fetch="true" column="DESCR"
jdbc-type="VARCHAR"/>
<collection-descriptor name="specs"
element-class-ref="com.exigentic.onyx.Specification" auto-update="false"
auto-delete="false">
<inverse-foreignkey field-ref="specId"/>
</collection-descriptor>
</class-descriptor>
</descriptor-repository>
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org
Re: Help, I'm stuck and I can't get out! (Infinite Loop)
Posted by ed...@mgrinformatica.com.br.
It isn't a bug. Actually, it's a "Feature by design". Since I don't maintain cache of
objects (this is the behaviour of EmptyCache), there is no way to know that the object is
loaded. So it will load. If the loaded object has references to the first object, it will
load the first object again, and so on.
In the circunstances where I can't avoid two way navigable references, I use object-cache
tag per object. In all other places I work with EmptyCache and there is no problem.
Thats my experience, and may not be true for rc5, since I working with some outdated HEAD rc4.
Best regards,
Edson Richter
> For the slow people in the class, can you please explain this problem in
> a little more detail? If I have to tweak cache timeouts to get correct
> behavior on simple references, then there 's a bug hiding in here somewhere.
>
> Thanks.
>
> Edson Carlos Ericksson Richter wrote:
>
>>Exists some circustantes that results in infinite loop due to use of EmptyCache with two
>> way navigable references. Are you using this? If yes, try to set a <object-cache> in the
>> recerenced bean with a very low time-out (let's say, 1 sec). It solved almost vast majority
>> of my cases.
>>
>>Best regards,
>>
>>Edson Richter
>>
>> ----- Original Message -----
>> From: Clay Mitchell
>> To: OJB Users List
>> Sent: Saturday, February 07, 2004 2:16 PM
>> Subject: Help, I'm stuck and I can't get out! (Infinite Loop)
>>
>>
>> I seem to have gotten myself stuck in a infinite loop here...
>>
>> Any idea what it's doing and why?
>>
>> Thanks
>> -Clay
>>
>> [org.apache.ojb.broker.core.QueryReferenceBroker] DEBUG:
>> getCollectionByQuery (class
>> org.apache.ojb.broker.util.collections.RemovalAwareCollection, class
>> com.exigentic.onyx.ProductType, Query from class
>> com.exigentic.onyx.ProductType where [id IN [79, 28, 112]])
>> [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias]
>> DEBUG: TableAlias(): using hints ? false
>>
>> [org.apache.ojb.broker.core.QueryReferenceBroker] DEBUG:
>> getCollectionByQuery (class
>> org.apache.ojb.broker.util.collections.RemovalAwareCollection, class
>> com.exigentic.onyx.Specification, Query from class
>> com.exigentic.onyx.Specification where [id IN [79, 28, 112]])
>> [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias]
>> DEBUG: TableAlias(): using hints ? false
>>
>> [org.apache.ojb.broker.core.QueryReferenceBroker] DEBUG:
>> getCollectionByQuery (class
>> org.apache.ojb.broker.util.collections.RemovalAwareCollection, class
>> com.exigentic.onyx.Product, Query from class com.exigentic.onyx.Product
>> where [id IN [79, 28, 112]])
>> [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias]
>> DEBUG: TableAlias(): using hints ? false
>>
>> [org.apache.ojb.broker.core.QueryReferenceBroker] DEBUG:
>> getCollectionByQuery (class
>> org.apache.ojb.broker.util.collections.RemovalAwareCollection, class
>> com.exigentic.onyx.SpecType, Query from class
>> com.exigentic.onyx.SpecType where [id IN [79, 28, 112]])
>> [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias]
>> DEBUG: TableAlias(): using hints ? false
>>
>> [org.apache.ojb.broker.core.QueryReferenceBroker] DEBUG:
>> getCollectionByQuery (class
>> org.apache.ojb.broker.util.collections.RemovalAwareCollection, class
>> com.exigentic.onyx.Specification, Query from class
>> com.exigentic.onyx.Specification where [specId = 28])
>> [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias]
>> DEBUG: TableAlias(): using hints ? false
>>
>>
>> ###### Here's my repository:
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>>
>> <!DOCTYPE descriptor-repository PUBLIC "-//Apache Software
>> Foundation//DTD OJB Repository//EN" "repository.dtd">
>>
>> <descriptor-repository version="1.0" isolation-level="read-uncommitted">
>> <jdbc-connection-descriptor jcd-alias="default"
>> default-connection="true" platform="PostgreSQL" jdbc-level="3.0"
>> driver="org.postgresql.Driver" protocol="jdbc" subprotocol="postgresql"
>> dbalias="//192.168.1.101:5432/onyx" username="postgres"
>> password="t30a6az8z" eager-release="false" batch-mode="false"
>> useAutoCommit="1" ignoreAutoCommitExceptions="false">
>> <connection-pool maxActive="21" validationQuery=""/>
>> <sequence-manager
>> className="org.apache.ojb.broker.util.sequence.SequenceManagerNextValImpl">
>> <attribute attribute-name="autoNaming" attribute-value="true"/>
>> </sequence-manager>
>> </jdbc-connection-descriptor>
>> <class-descriptor class="com.exigentic.onyx.Account" table="ACCOUNT">
>> <field-descriptor name="id" primarykey="true" default-fetch="true"
>> autoincrement="true" sequence-name="account_seq'::text"
>> column="ACCOUNT_ID" jdbc-type="INTEGER"/>
>> <field-descriptor name="email" nullable="false" default-fetch="true"
>> column="EMAIL" jdbc-type="VARCHAR"/>
>> <field-descriptor name="password" nullable="false"
>> default-fetch="true" column="PASSWORD" jdbc-type="VARCHAR"/>
>> <field-descriptor name="firstName" nullable="false"
>> default-fetch="true" column="NAME_FIRST" jdbc-type="VARCHAR"/>
>> <field-descriptor name="lastName" nullable="false"
>> default-fetch="true" column="NAME_LAST" jdbc-type="VARCHAR"/>
>> <field-descriptor name="company" default-fetch="true" column="COMPANY"
>> jdbc-type="VARCHAR"/>
>> <field-descriptor name="phone" nullable="false" default-fetch="true"
>> column="PHONE" jdbc-type="VARCHAR"/>
>> <field-descriptor name="fax" default-fetch="true" column="FAX"
>> jdbc-type="VARCHAR"/>
>> <field-descriptor name="addr1" nullable="false" default-fetch="true"
>> column="ADDR_1" jdbc-type="VARCHAR"/>
>> <field-descriptor name="addr2" default-fetch="true" column="ADDR_2"
>> jdbc-type="VARCHAR"/>
>> <field-descriptor name="city" nullable="false" default-fetch="true"
>> column="CITY" jdbc-type="VARCHAR"/>
>> <field-descriptor name="state" nullable="false" default-fetch="true"
>> column="STATE" jdbc-type="VARCHAR"/>
>> <field-descriptor name="country" nullable="false" default-fetch="true"
>> column="COUNTRY" jdbc-type="VARCHAR"/>
>> <field-descriptor name="zip" nullable="false" default-fetch="true"
>> column="ZIP" jdbc-type="VARCHAR"/>
>> <field-descriptor name="security" nullable="false"
>> default-fetch="true" column="SECURITY" jdbc-type="INTEGER"/>
>> <field-descriptor name="sourceDate" nullable="false"
>> default-fetch="true" column="SOURCE_DATE" jdbc-type="TIMESTAMP"
>> conversion="org.apache.ojb.broker.accesslayer.conversions.JavaDate2SqlTimestampFieldConversion"/>
>> </class-descriptor>
>>
>> <class-descriptor class="com.exigentic.onyx.Option" table="OPTION">
>> <field-descriptor name="id" primarykey="true" default-fetch="true"
>> autoincrement="true" sequence-name="option_seq'::text"
>> column="OPTION_ID" jdbc-type="INTEGER"/>
>> <field-descriptor name="productId" nullable="false"
>> default-fetch="true" column="PRODUCT_ID" jdbc-type="INTEGER"/>
>> <field-descriptor name="childId" nullable="false" default-fetch="true"
>> column="PRODUCT_OPTION" jdbc-type="INTEGER"/>
>> </class-descriptor>
>>
>> <class-descriptor class="com.exigentic.onyx.Product" table="PRODUCT">
>> <field-descriptor name="id" primarykey="true" default-fetch="true"
>> autoincrement="true" sequence-name="product_seq'::text"
>> column="PRODUCT_ID" jdbc-type="INTEGER"/>
>> <field-descriptor name="typeId" nullable="false" default-fetch="true"
>> autoincrement="true" sequence-name="type_seq'::text" column="TYPE_ID"
>> jdbc-type="INTEGER"/>
>> <field-descriptor name="code" nullable="false" default-fetch="true"
>> column="CODE" jdbc-type="VARCHAR"/>
>> <field-descriptor name="name" nullable="false" default-fetch="true"
>> column="NAME" jdbc-type="VARCHAR"/>
>> <field-descriptor name="descr" nullable="false" default-fetch="true"
>> column="DESCR" jdbc-type="VARCHAR"/>
>> <field-descriptor name="option" nullable="false" default-fetch="true"
>> column="OPTION" jdbc-type="CHAR"/>
>> <field-descriptor name="distributor" nullable="false"
>> default-fetch="true" column="DISTRIBUTOR" jdbc-type="CHAR"/>
>> <field-descriptor name="distPrice" default-fetch="true"
>> column="DIST_PRICE" jdbc-type="DOUBLE"/>
>> <field-descriptor name="listPrice" default-fetch="true"
>> column="LIST_PRICE" jdbc-type="DOUBLE"/>
>> <field-descriptor name="highlight" default-fetch="true"
>> column="HIGHLIGHT" jdbc-type="CHAR"/>
>> <reference-descriptor name="productType"
>> class-ref="com.exigentic.onyx.ProductType" auto-update="false"
>> auto-delete="false">
>> <foreignkey field-ref="id"/>
>> </reference-descriptor>
>> <collection-descriptor name="specs"
>> element-class-ref="com.exigentic.onyx.Specification" auto-update="false"
>> auto-delete="false">
>> <inverse-foreignkey field-ref="id"/>
>> </collection-descriptor>
>> </class-descriptor>
>>
>> <class-descriptor class="com.exigentic.onyx.Image" table="PRODUCT_IMAGE">
>> <field-descriptor name="id" primarykey="true" default-fetch="true"
>> autoincrement="true" sequence-name="image_seq'::text" column="IMAGE_ID"
>> jdbc-type="INTEGER"/>
>> <field-descriptor name="productId" default-fetch="true"
>> column="PRODUCT_ID" jdbc-type="INTEGER"/>
>> <field-descriptor name="image" nullable="false" default-fetch="true"
>> column="IMAGE" jdbc-type="VARCHAR"/>
>> <field-descriptor name="defaultImage" nullable="false"
>> default-fetch="true" column="DEFAULT_IMAGE" jdbc-type="CHAR"/>
>> </class-descriptor>
>>
>> <class-descriptor class="com.exigentic.onyx.Specification"
>> table="PRODUCT_SPECIFICATION">
>> <field-descriptor name="id" primarykey="true" default-fetch="true"
>> autoincrement="true" sequence-name="spec_seq'::text" column="SPEC_ID"
>> jdbc-type="INTEGER"/>
>> <field-descriptor name="productId" primarykey="true"
>> default-fetch="true" column="PRODUCT_ID" jdbc-type="INTEGER"/>
>> <field-descriptor name="specId" primarykey="true" default-fetch="true"
>> column="SPECIFICATION_ID" jdbc-type="INTEGER"/>
>> <field-descriptor name="value" nullable="false" default-fetch="true"
>> column="VALUE" jdbc-type="VARCHAR"/>
>> <reference-descriptor name="product"
>> class-ref="com.exigentic.onyx.Product" auto-update="false"
>> auto-delete="false">
>> <foreignkey field-ref="id"/>
>> </reference-descriptor>
>> <reference-descriptor name="specType"
>> class-ref="com.exigentic.onyx.SpecType" auto-update="false"
>> auto-delete="false">
>> <foreignkey field-ref="id"/>
>> </reference-descriptor>
>> </class-descriptor>
>>
>> <class-descriptor class="com.exigentic.onyx.ProductType"
>> table="PRODUCT_TYPE">
>> <field-descriptor name="id" primarykey="true" default-fetch="true"
>> autoincrement="true" sequence-name="type_seq'::text" column="TYPE_ID"
>> jdbc-type="INTEGER"/>
>> <field-descriptor name="name" nullable="false" default-fetch="true"
>> column="NAME" jdbc-type="VARCHAR"/>
>> <field-descriptor name="descr" default-fetch="true" column="DESCR"
>> jdbc-type="VARCHAR"/>
>> <collection-descriptor name="productList"
>> element-class-ref="com.exigentic.onyx.Product" auto-update="false"
>> auto-delete="false">
>> <inverse-foreignkey field-ref="typeId"/>
>> </collection-descriptor>
>> </class-descriptor>
>>
>> <class-descriptor class="com.exigentic.onyx.SpecType"
>> table="SPECIFICATION_TYPE">
>> <field-descriptor name="id" primarykey="true" default-fetch="true"
>> autoincrement="true" sequence-name="specification_seq'::text"
>> column="SPECIFICATION_ID" jdbc-type="INTEGER"/>
>> <field-descriptor name="name" nullable="false" default-fetch="true"
>> column="NAME" jdbc-type="VARCHAR"/>
>> <field-descriptor name="descr" default-fetch="true" column="DESCR"
>> jdbc-type="VARCHAR"/>
>> <collection-descriptor name="specs"
>> element-class-ref="com.exigentic.onyx.Specification" auto-update="false"
>> auto-delete="false">
>> <inverse-foreignkey field-ref="specId"/>
>> </collection-descriptor>
>> </class-descriptor>
>> </descriptor-repository>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>> For additional commands, e-mail: ojb-user-help@db.apache.org
>>
>>
>>
>> ---
>> Outgoing mail is certified Virus Free.
>> Checked by AVG anti-virus system (http://www.grisoft.com).
>> Version: 6.0.577 / Virus Database: 366 - Release Date: 3/2/2004
>>
>>
>
> --
> Larry V. Streepy, Jr.
> Senior Vice President and CTO
> Health Langugae, Inc.
>
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org
Re: Help, I'm stuck and I can't get out! (Infinite Loop)
Posted by "Larry V. Streepy, Jr." <st...@healthlanguage.com>.
For the slow people in the class, can you please explain this problem in
a little more detail? If I have to tweak cache timeouts to get correct
behavior on simple references, then there 's a bug hiding in here somewhere.
Thanks.
Edson Carlos Ericksson Richter wrote:
>Exists some circustantes that results in infinite loop due to use of EmptyCache with two way navigable references. Are you using this? If yes, try to set a <object-cache> in the recerenced bean with a very low time-out (let's say, 1 sec). It solved almost vast majority of my cases.
>
>Best regards,
>
>Edson Richter
>
> ----- Original Message -----
> From: Clay Mitchell
> To: OJB Users List
> Sent: Saturday, February 07, 2004 2:16 PM
> Subject: Help, I'm stuck and I can't get out! (Infinite Loop)
>
>
> I seem to have gotten myself stuck in a infinite loop here...
>
> Any idea what it's doing and why?
>
> Thanks
> -Clay
>
> [org.apache.ojb.broker.core.QueryReferenceBroker] DEBUG:
> getCollectionByQuery (class
> org.apache.ojb.broker.util.collections.RemovalAwareCollection, class
> com.exigentic.onyx.ProductType, Query from class
> com.exigentic.onyx.ProductType where [id IN [79, 28, 112]])
> [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias]
> DEBUG: TableAlias(): using hints ? false
>
> [org.apache.ojb.broker.core.QueryReferenceBroker] DEBUG:
> getCollectionByQuery (class
> org.apache.ojb.broker.util.collections.RemovalAwareCollection, class
> com.exigentic.onyx.Specification, Query from class
> com.exigentic.onyx.Specification where [id IN [79, 28, 112]])
> [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias]
> DEBUG: TableAlias(): using hints ? false
>
> [org.apache.ojb.broker.core.QueryReferenceBroker] DEBUG:
> getCollectionByQuery (class
> org.apache.ojb.broker.util.collections.RemovalAwareCollection, class
> com.exigentic.onyx.Product, Query from class com.exigentic.onyx.Product
> where [id IN [79, 28, 112]])
> [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias]
> DEBUG: TableAlias(): using hints ? false
>
> [org.apache.ojb.broker.core.QueryReferenceBroker] DEBUG:
> getCollectionByQuery (class
> org.apache.ojb.broker.util.collections.RemovalAwareCollection, class
> com.exigentic.onyx.SpecType, Query from class
> com.exigentic.onyx.SpecType where [id IN [79, 28, 112]])
> [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias]
> DEBUG: TableAlias(): using hints ? false
>
> [org.apache.ojb.broker.core.QueryReferenceBroker] DEBUG:
> getCollectionByQuery (class
> org.apache.ojb.broker.util.collections.RemovalAwareCollection, class
> com.exigentic.onyx.Specification, Query from class
> com.exigentic.onyx.Specification where [specId = 28])
> [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias]
> DEBUG: TableAlias(): using hints ? false
>
>
> ###### Here's my repository:
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <!DOCTYPE descriptor-repository PUBLIC "-//Apache Software
> Foundation//DTD OJB Repository//EN" "repository.dtd">
>
> <descriptor-repository version="1.0" isolation-level="read-uncommitted">
> <jdbc-connection-descriptor jcd-alias="default"
> default-connection="true" platform="PostgreSQL" jdbc-level="3.0"
> driver="org.postgresql.Driver" protocol="jdbc" subprotocol="postgresql"
> dbalias="//192.168.1.101:5432/onyx" username="postgres"
> password="t30a6az8z" eager-release="false" batch-mode="false"
> useAutoCommit="1" ignoreAutoCommitExceptions="false">
> <connection-pool maxActive="21" validationQuery=""/>
> <sequence-manager
> className="org.apache.ojb.broker.util.sequence.SequenceManagerNextValImpl">
> <attribute attribute-name="autoNaming" attribute-value="true"/>
> </sequence-manager>
> </jdbc-connection-descriptor>
> <class-descriptor class="com.exigentic.onyx.Account" table="ACCOUNT">
> <field-descriptor name="id" primarykey="true" default-fetch="true"
> autoincrement="true" sequence-name="account_seq'::text"
> column="ACCOUNT_ID" jdbc-type="INTEGER"/>
> <field-descriptor name="email" nullable="false" default-fetch="true"
> column="EMAIL" jdbc-type="VARCHAR"/>
> <field-descriptor name="password" nullable="false"
> default-fetch="true" column="PASSWORD" jdbc-type="VARCHAR"/>
> <field-descriptor name="firstName" nullable="false"
> default-fetch="true" column="NAME_FIRST" jdbc-type="VARCHAR"/>
> <field-descriptor name="lastName" nullable="false"
> default-fetch="true" column="NAME_LAST" jdbc-type="VARCHAR"/>
> <field-descriptor name="company" default-fetch="true" column="COMPANY"
> jdbc-type="VARCHAR"/>
> <field-descriptor name="phone" nullable="false" default-fetch="true"
> column="PHONE" jdbc-type="VARCHAR"/>
> <field-descriptor name="fax" default-fetch="true" column="FAX"
> jdbc-type="VARCHAR"/>
> <field-descriptor name="addr1" nullable="false" default-fetch="true"
> column="ADDR_1" jdbc-type="VARCHAR"/>
> <field-descriptor name="addr2" default-fetch="true" column="ADDR_2"
> jdbc-type="VARCHAR"/>
> <field-descriptor name="city" nullable="false" default-fetch="true"
> column="CITY" jdbc-type="VARCHAR"/>
> <field-descriptor name="state" nullable="false" default-fetch="true"
> column="STATE" jdbc-type="VARCHAR"/>
> <field-descriptor name="country" nullable="false" default-fetch="true"
> column="COUNTRY" jdbc-type="VARCHAR"/>
> <field-descriptor name="zip" nullable="false" default-fetch="true"
> column="ZIP" jdbc-type="VARCHAR"/>
> <field-descriptor name="security" nullable="false"
> default-fetch="true" column="SECURITY" jdbc-type="INTEGER"/>
> <field-descriptor name="sourceDate" nullable="false"
> default-fetch="true" column="SOURCE_DATE" jdbc-type="TIMESTAMP"
> conversion="org.apache.ojb.broker.accesslayer.conversions.JavaDate2SqlTimestampFieldConversion"/>
> </class-descriptor>
>
> <class-descriptor class="com.exigentic.onyx.Option" table="OPTION">
> <field-descriptor name="id" primarykey="true" default-fetch="true"
> autoincrement="true" sequence-name="option_seq'::text"
> column="OPTION_ID" jdbc-type="INTEGER"/>
> <field-descriptor name="productId" nullable="false"
> default-fetch="true" column="PRODUCT_ID" jdbc-type="INTEGER"/>
> <field-descriptor name="childId" nullable="false" default-fetch="true"
> column="PRODUCT_OPTION" jdbc-type="INTEGER"/>
> </class-descriptor>
>
> <class-descriptor class="com.exigentic.onyx.Product" table="PRODUCT">
> <field-descriptor name="id" primarykey="true" default-fetch="true"
> autoincrement="true" sequence-name="product_seq'::text"
> column="PRODUCT_ID" jdbc-type="INTEGER"/>
> <field-descriptor name="typeId" nullable="false" default-fetch="true"
> autoincrement="true" sequence-name="type_seq'::text" column="TYPE_ID"
> jdbc-type="INTEGER"/>
> <field-descriptor name="code" nullable="false" default-fetch="true"
> column="CODE" jdbc-type="VARCHAR"/>
> <field-descriptor name="name" nullable="false" default-fetch="true"
> column="NAME" jdbc-type="VARCHAR"/>
> <field-descriptor name="descr" nullable="false" default-fetch="true"
> column="DESCR" jdbc-type="VARCHAR"/>
> <field-descriptor name="option" nullable="false" default-fetch="true"
> column="OPTION" jdbc-type="CHAR"/>
> <field-descriptor name="distributor" nullable="false"
> default-fetch="true" column="DISTRIBUTOR" jdbc-type="CHAR"/>
> <field-descriptor name="distPrice" default-fetch="true"
> column="DIST_PRICE" jdbc-type="DOUBLE"/>
> <field-descriptor name="listPrice" default-fetch="true"
> column="LIST_PRICE" jdbc-type="DOUBLE"/>
> <field-descriptor name="highlight" default-fetch="true"
> column="HIGHLIGHT" jdbc-type="CHAR"/>
> <reference-descriptor name="productType"
> class-ref="com.exigentic.onyx.ProductType" auto-update="false"
> auto-delete="false">
> <foreignkey field-ref="id"/>
> </reference-descriptor>
> <collection-descriptor name="specs"
> element-class-ref="com.exigentic.onyx.Specification" auto-update="false"
> auto-delete="false">
> <inverse-foreignkey field-ref="id"/>
> </collection-descriptor>
> </class-descriptor>
>
> <class-descriptor class="com.exigentic.onyx.Image" table="PRODUCT_IMAGE">
> <field-descriptor name="id" primarykey="true" default-fetch="true"
> autoincrement="true" sequence-name="image_seq'::text" column="IMAGE_ID"
> jdbc-type="INTEGER"/>
> <field-descriptor name="productId" default-fetch="true"
> column="PRODUCT_ID" jdbc-type="INTEGER"/>
> <field-descriptor name="image" nullable="false" default-fetch="true"
> column="IMAGE" jdbc-type="VARCHAR"/>
> <field-descriptor name="defaultImage" nullable="false"
> default-fetch="true" column="DEFAULT_IMAGE" jdbc-type="CHAR"/>
> </class-descriptor>
>
> <class-descriptor class="com.exigentic.onyx.Specification"
> table="PRODUCT_SPECIFICATION">
> <field-descriptor name="id" primarykey="true" default-fetch="true"
> autoincrement="true" sequence-name="spec_seq'::text" column="SPEC_ID"
> jdbc-type="INTEGER"/>
> <field-descriptor name="productId" primarykey="true"
> default-fetch="true" column="PRODUCT_ID" jdbc-type="INTEGER"/>
> <field-descriptor name="specId" primarykey="true" default-fetch="true"
> column="SPECIFICATION_ID" jdbc-type="INTEGER"/>
> <field-descriptor name="value" nullable="false" default-fetch="true"
> column="VALUE" jdbc-type="VARCHAR"/>
> <reference-descriptor name="product"
> class-ref="com.exigentic.onyx.Product" auto-update="false"
> auto-delete="false">
> <foreignkey field-ref="id"/>
> </reference-descriptor>
> <reference-descriptor name="specType"
> class-ref="com.exigentic.onyx.SpecType" auto-update="false"
> auto-delete="false">
> <foreignkey field-ref="id"/>
> </reference-descriptor>
> </class-descriptor>
>
> <class-descriptor class="com.exigentic.onyx.ProductType"
> table="PRODUCT_TYPE">
> <field-descriptor name="id" primarykey="true" default-fetch="true"
> autoincrement="true" sequence-name="type_seq'::text" column="TYPE_ID"
> jdbc-type="INTEGER"/>
> <field-descriptor name="name" nullable="false" default-fetch="true"
> column="NAME" jdbc-type="VARCHAR"/>
> <field-descriptor name="descr" default-fetch="true" column="DESCR"
> jdbc-type="VARCHAR"/>
> <collection-descriptor name="productList"
> element-class-ref="com.exigentic.onyx.Product" auto-update="false"
> auto-delete="false">
> <inverse-foreignkey field-ref="typeId"/>
> </collection-descriptor>
> </class-descriptor>
>
> <class-descriptor class="com.exigentic.onyx.SpecType"
> table="SPECIFICATION_TYPE">
> <field-descriptor name="id" primarykey="true" default-fetch="true"
> autoincrement="true" sequence-name="specification_seq'::text"
> column="SPECIFICATION_ID" jdbc-type="INTEGER"/>
> <field-descriptor name="name" nullable="false" default-fetch="true"
> column="NAME" jdbc-type="VARCHAR"/>
> <field-descriptor name="descr" default-fetch="true" column="DESCR"
> jdbc-type="VARCHAR"/>
> <collection-descriptor name="specs"
> element-class-ref="com.exigentic.onyx.Specification" auto-update="false"
> auto-delete="false">
> <inverse-foreignkey field-ref="specId"/>
> </collection-descriptor>
> </class-descriptor>
> </descriptor-repository>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
>
>
>
> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.577 / Virus Database: 366 - Release Date: 3/2/2004
>
>
--
Larry V. Streepy, Jr.
Senior Vice President and CTO
Health Langugae, Inc.
Re: Help, I'm stuck and I can't get out! (Infinite Loop)
Posted by Edson Carlos Ericksson Richter <ed...@mgrinformatica.com.br>.
Exists some circustantes that results in infinite loop due to use of EmptyCache with two way navigable references. Are you using this? If yes, try to set a <object-cache> in the recerenced bean with a very low time-out (let's say, 1 sec). It solved almost vast majority of my cases.
Best regards,
Edson Richter
----- Original Message -----
From: Clay Mitchell
To: OJB Users List
Sent: Saturday, February 07, 2004 2:16 PM
Subject: Help, I'm stuck and I can't get out! (Infinite Loop)
I seem to have gotten myself stuck in a infinite loop here...
Any idea what it's doing and why?
Thanks
-Clay
[org.apache.ojb.broker.core.QueryReferenceBroker] DEBUG:
getCollectionByQuery (class
org.apache.ojb.broker.util.collections.RemovalAwareCollection, class
com.exigentic.onyx.ProductType, Query from class
com.exigentic.onyx.ProductType where [id IN [79, 28, 112]])
[org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias]
DEBUG: TableAlias(): using hints ? false
[org.apache.ojb.broker.core.QueryReferenceBroker] DEBUG:
getCollectionByQuery (class
org.apache.ojb.broker.util.collections.RemovalAwareCollection, class
com.exigentic.onyx.Specification, Query from class
com.exigentic.onyx.Specification where [id IN [79, 28, 112]])
[org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias]
DEBUG: TableAlias(): using hints ? false
[org.apache.ojb.broker.core.QueryReferenceBroker] DEBUG:
getCollectionByQuery (class
org.apache.ojb.broker.util.collections.RemovalAwareCollection, class
com.exigentic.onyx.Product, Query from class com.exigentic.onyx.Product
where [id IN [79, 28, 112]])
[org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias]
DEBUG: TableAlias(): using hints ? false
[org.apache.ojb.broker.core.QueryReferenceBroker] DEBUG:
getCollectionByQuery (class
org.apache.ojb.broker.util.collections.RemovalAwareCollection, class
com.exigentic.onyx.SpecType, Query from class
com.exigentic.onyx.SpecType where [id IN [79, 28, 112]])
[org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias]
DEBUG: TableAlias(): using hints ? false
[org.apache.ojb.broker.core.QueryReferenceBroker] DEBUG:
getCollectionByQuery (class
org.apache.ojb.broker.util.collections.RemovalAwareCollection, class
com.exigentic.onyx.Specification, Query from class
com.exigentic.onyx.Specification where [specId = 28])
[org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias]
DEBUG: TableAlias(): using hints ? false
###### Here's my repository:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE descriptor-repository PUBLIC "-//Apache Software
Foundation//DTD OJB Repository//EN" "repository.dtd">
<descriptor-repository version="1.0" isolation-level="read-uncommitted">
<jdbc-connection-descriptor jcd-alias="default"
default-connection="true" platform="PostgreSQL" jdbc-level="3.0"
driver="org.postgresql.Driver" protocol="jdbc" subprotocol="postgresql"
dbalias="//192.168.1.101:5432/onyx" username="postgres"
password="t30a6az8z" eager-release="false" batch-mode="false"
useAutoCommit="1" ignoreAutoCommitExceptions="false">
<connection-pool maxActive="21" validationQuery=""/>
<sequence-manager
className="org.apache.ojb.broker.util.sequence.SequenceManagerNextValImpl">
<attribute attribute-name="autoNaming" attribute-value="true"/>
</sequence-manager>
</jdbc-connection-descriptor>
<class-descriptor class="com.exigentic.onyx.Account" table="ACCOUNT">
<field-descriptor name="id" primarykey="true" default-fetch="true"
autoincrement="true" sequence-name="account_seq'::text"
column="ACCOUNT_ID" jdbc-type="INTEGER"/>
<field-descriptor name="email" nullable="false" default-fetch="true"
column="EMAIL" jdbc-type="VARCHAR"/>
<field-descriptor name="password" nullable="false"
default-fetch="true" column="PASSWORD" jdbc-type="VARCHAR"/>
<field-descriptor name="firstName" nullable="false"
default-fetch="true" column="NAME_FIRST" jdbc-type="VARCHAR"/>
<field-descriptor name="lastName" nullable="false"
default-fetch="true" column="NAME_LAST" jdbc-type="VARCHAR"/>
<field-descriptor name="company" default-fetch="true" column="COMPANY"
jdbc-type="VARCHAR"/>
<field-descriptor name="phone" nullable="false" default-fetch="true"
column="PHONE" jdbc-type="VARCHAR"/>
<field-descriptor name="fax" default-fetch="true" column="FAX"
jdbc-type="VARCHAR"/>
<field-descriptor name="addr1" nullable="false" default-fetch="true"
column="ADDR_1" jdbc-type="VARCHAR"/>
<field-descriptor name="addr2" default-fetch="true" column="ADDR_2"
jdbc-type="VARCHAR"/>
<field-descriptor name="city" nullable="false" default-fetch="true"
column="CITY" jdbc-type="VARCHAR"/>
<field-descriptor name="state" nullable="false" default-fetch="true"
column="STATE" jdbc-type="VARCHAR"/>
<field-descriptor name="country" nullable="false" default-fetch="true"
column="COUNTRY" jdbc-type="VARCHAR"/>
<field-descriptor name="zip" nullable="false" default-fetch="true"
column="ZIP" jdbc-type="VARCHAR"/>
<field-descriptor name="security" nullable="false"
default-fetch="true" column="SECURITY" jdbc-type="INTEGER"/>
<field-descriptor name="sourceDate" nullable="false"
default-fetch="true" column="SOURCE_DATE" jdbc-type="TIMESTAMP"
conversion="org.apache.ojb.broker.accesslayer.conversions.JavaDate2SqlTimestampFieldConversion"/>
</class-descriptor>
<class-descriptor class="com.exigentic.onyx.Option" table="OPTION">
<field-descriptor name="id" primarykey="true" default-fetch="true"
autoincrement="true" sequence-name="option_seq'::text"
column="OPTION_ID" jdbc-type="INTEGER"/>
<field-descriptor name="productId" nullable="false"
default-fetch="true" column="PRODUCT_ID" jdbc-type="INTEGER"/>
<field-descriptor name="childId" nullable="false" default-fetch="true"
column="PRODUCT_OPTION" jdbc-type="INTEGER"/>
</class-descriptor>
<class-descriptor class="com.exigentic.onyx.Product" table="PRODUCT">
<field-descriptor name="id" primarykey="true" default-fetch="true"
autoincrement="true" sequence-name="product_seq'::text"
column="PRODUCT_ID" jdbc-type="INTEGER"/>
<field-descriptor name="typeId" nullable="false" default-fetch="true"
autoincrement="true" sequence-name="type_seq'::text" column="TYPE_ID"
jdbc-type="INTEGER"/>
<field-descriptor name="code" nullable="false" default-fetch="true"
column="CODE" jdbc-type="VARCHAR"/>
<field-descriptor name="name" nullable="false" default-fetch="true"
column="NAME" jdbc-type="VARCHAR"/>
<field-descriptor name="descr" nullable="false" default-fetch="true"
column="DESCR" jdbc-type="VARCHAR"/>
<field-descriptor name="option" nullable="false" default-fetch="true"
column="OPTION" jdbc-type="CHAR"/>
<field-descriptor name="distributor" nullable="false"
default-fetch="true" column="DISTRIBUTOR" jdbc-type="CHAR"/>
<field-descriptor name="distPrice" default-fetch="true"
column="DIST_PRICE" jdbc-type="DOUBLE"/>
<field-descriptor name="listPrice" default-fetch="true"
column="LIST_PRICE" jdbc-type="DOUBLE"/>
<field-descriptor name="highlight" default-fetch="true"
column="HIGHLIGHT" jdbc-type="CHAR"/>
<reference-descriptor name="productType"
class-ref="com.exigentic.onyx.ProductType" auto-update="false"
auto-delete="false">
<foreignkey field-ref="id"/>
</reference-descriptor>
<collection-descriptor name="specs"
element-class-ref="com.exigentic.onyx.Specification" auto-update="false"
auto-delete="false">
<inverse-foreignkey field-ref="id"/>
</collection-descriptor>
</class-descriptor>
<class-descriptor class="com.exigentic.onyx.Image" table="PRODUCT_IMAGE">
<field-descriptor name="id" primarykey="true" default-fetch="true"
autoincrement="true" sequence-name="image_seq'::text" column="IMAGE_ID"
jdbc-type="INTEGER"/>
<field-descriptor name="productId" default-fetch="true"
column="PRODUCT_ID" jdbc-type="INTEGER"/>
<field-descriptor name="image" nullable="false" default-fetch="true"
column="IMAGE" jdbc-type="VARCHAR"/>
<field-descriptor name="defaultImage" nullable="false"
default-fetch="true" column="DEFAULT_IMAGE" jdbc-type="CHAR"/>
</class-descriptor>
<class-descriptor class="com.exigentic.onyx.Specification"
table="PRODUCT_SPECIFICATION">
<field-descriptor name="id" primarykey="true" default-fetch="true"
autoincrement="true" sequence-name="spec_seq'::text" column="SPEC_ID"
jdbc-type="INTEGER"/>
<field-descriptor name="productId" primarykey="true"
default-fetch="true" column="PRODUCT_ID" jdbc-type="INTEGER"/>
<field-descriptor name="specId" primarykey="true" default-fetch="true"
column="SPECIFICATION_ID" jdbc-type="INTEGER"/>
<field-descriptor name="value" nullable="false" default-fetch="true"
column="VALUE" jdbc-type="VARCHAR"/>
<reference-descriptor name="product"
class-ref="com.exigentic.onyx.Product" auto-update="false"
auto-delete="false">
<foreignkey field-ref="id"/>
</reference-descriptor>
<reference-descriptor name="specType"
class-ref="com.exigentic.onyx.SpecType" auto-update="false"
auto-delete="false">
<foreignkey field-ref="id"/>
</reference-descriptor>
</class-descriptor>
<class-descriptor class="com.exigentic.onyx.ProductType"
table="PRODUCT_TYPE">
<field-descriptor name="id" primarykey="true" default-fetch="true"
autoincrement="true" sequence-name="type_seq'::text" column="TYPE_ID"
jdbc-type="INTEGER"/>
<field-descriptor name="name" nullable="false" default-fetch="true"
column="NAME" jdbc-type="VARCHAR"/>
<field-descriptor name="descr" default-fetch="true" column="DESCR"
jdbc-type="VARCHAR"/>
<collection-descriptor name="productList"
element-class-ref="com.exigentic.onyx.Product" auto-update="false"
auto-delete="false">
<inverse-foreignkey field-ref="typeId"/>
</collection-descriptor>
</class-descriptor>
<class-descriptor class="com.exigentic.onyx.SpecType"
table="SPECIFICATION_TYPE">
<field-descriptor name="id" primarykey="true" default-fetch="true"
autoincrement="true" sequence-name="specification_seq'::text"
column="SPECIFICATION_ID" jdbc-type="INTEGER"/>
<field-descriptor name="name" nullable="false" default-fetch="true"
column="NAME" jdbc-type="VARCHAR"/>
<field-descriptor name="descr" default-fetch="true" column="DESCR"
jdbc-type="VARCHAR"/>
<collection-descriptor name="specs"
element-class-ref="com.exigentic.onyx.Specification" auto-update="false"
auto-delete="false">
<inverse-foreignkey field-ref="specId"/>
</collection-descriptor>
</class-descriptor>
</descriptor-repository>
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.577 / Virus Database: 366 - Release Date: 3/2/2004