Hi
I posted a mail recently about the Product -> ProductGroup problem (Castor's
example). Basically, when you:
(1) create a ProductGroup
(2) assign it to a new Product
(3) create new Product
Castor will extract the ProductGroups's id and insert it into the group_id
field. Here's the snippet of the Product's mapping:
<!-- Product has reference to ProductGroup,
many products may reference same group -->
<field name="group" type="myapp.ProductGroup">
<sql name="group_id" />
<xml name="group" node="element" />
</field>
OK, here's the catch. If you create a key generator (I used HIGH/LOW) and
make ProductGroup use it, Castor cannot create the Product object. The
group_id will be left as null and the DB will complain with: "ERROR:
ExecAppend: Fail to add null value in not null attribute group_id" (This is
from postgresql).
To reproduce this problem just add this to the mapping.xml and create the
keys table:
<key-generator name="HIGH/LOW">
<param name="table" value="keys"/>
<param name="key-column" value="table_name"/>
<param name="value-column" value="max_pk_value"/>
<param name="grab-size" value="1000"/>
</key-generator>
<!-- Mapping for ProductGroup -->
<class name="myapp.ProductGroup"
identity="id" access="shared" key-generator="HIGH/LOW">
<description>Product group</description>
<map-to table="prod_group" xml="group" />
<cache-type type="unlimited"/>
<field name="id" type="integer" >
<sql name="id" type="integer"/>
<xml node="element"/>
</field>
<field name="name" type="string">
<sql name="name" type="char" />
<xml node="element" />
</field>
</class>
Can someone in the Castor team look into this problem please?
Keith C
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-dev