Primary key type mismatch error
I have Postgres database and Hibernate provider.
I have reverse engineered five interconnected tables both in 1.1.5 and now in 1.2.0.M1, and I get the same problem.
Here are the roo commands I ran through 1.2.0
database reverse engineer --schema public --package com.xxx.database --includeTables "main appt location regioni_catalogo zone_catalogo"
web mvc setup
web mvc all --package com.xxx.database.controllers
When I try the web app - calling for example the following page:
http://localhost/DatabaseTables/mains?form
I get:
org.hibernate.TypeMismatchException: Provided id of the wrong type for class com.villeinitalia.database.Main. Expected: class com.villeinitalia.database.MainPK, got class com.villeinitalia.database.LocationPK;
the database structure is as follows (some fields removed for reasons of space):
Code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.-->
<database name="deprecated" package="com.villeinitalia.database">
<option key="activeRecord" value="true"/>
<option key="includeNonPortableAttributes" value="false"/>
<option key="testAutomatically" value="false"/>
<table alias="public" name="appt">
<column name="nomecasa" primaryKey="false" required="false" scale="0" size="2147483647" type="12,text"/>
<column name="codice" primaryKey="false" required="true" scale="0" size="2147483647" type="12,text"/>
<column name="appartm" primaryKey="false" required="false" scale="0" size="2147483647" type="12,text"/>
<column name="pax" primaryKey="false" required="false" scale="0" size="2147483647" type="12,text"/>
<column name="mq" primaryKey="false" required="false" scale="0" size="5" type="5,int2"/>
<column name="dal" primaryKey="false" required="false" scale="0" size="2147483647" type="12,text"/>
<column name="al" primaryKey="false" required="false" scale="0" size="2147483647" type="12,text"/>
<column name="cauzione" primaryKey="false" required="false" scale="0" size="10" type="4,int4"/>
<column name="appt_no" primaryKey="true" required="true" scale="0" size="5" type="5,int2"/>
<column name="dal_long" primaryKey="false" required="false" scale="0" size="19" type="-5,int8"/>
<column name="al_long" primaryKey="false" required="false" scale="0" size="19" type="-5,int8"/>
<column name="appt_srl" primaryKey="false" required="true" scale="0" size="10" type="4,serial"/>
<foreign-key foreignTable="main" name="main_foreign_key" onDelete="cascade" onUpdate="none">
<option key="foreignSchemaName" value="public"/>
<option key="exported" value="false"/>
<reference foreign="serial_link" local="serial_link"/>
<reference foreign="stagione" local="stagione"/>
</foreign-key>
<unique name="appt_primary_key">
<unique-column name="serial_link"/>
<unique-column name="appt_no"/>
<unique-column name="stagione"/>
</unique>
<index name="appt_al_long_index">
<index-column name="al_long"/>
</index>
<index name="appt_codice_index">
<index-column name="codice"/>
</index>
<index name="appt_dal_long_index">
<index-column name="dal_long"/>
</index>
<index name="appt_nomecasa_index">
<index-column name="nomecasa"/>
</index>
<index name="appt_nomecasa_stagione_index">
<index-column name="nomecasa"/>
<index-column name="stagione"/>
</index>
</table>
<table alias="public" name="location">
<column name="serial_link" primaryKey="true" required="true" scale="0" size="10" type="4,int4"/>
<column name="regione" primaryKey="false" required="false" scale="0" size="2147483647" type="12,text"/>
<column name="provincia" primaryKey="false" required="false" scale="0" size="2147483647" type="12,text"/>
<column name="comune" primaryKey="false" required="false" scale="0" size="2147483647" type="12,text"/>
<column name="localita" primaryKey="false" required="false" scale="0" size="2147483647" type="12,text"/>
<column name="latitude" primaryKey="false" required="false" scale="5" size="7" type="2,numeric"/>
<column name="longitude" primaryKey="false" required="false" scale="5" size="7" type="2,numeric"/>
<column name="nomecasa" primaryKey="false" required="false" scale="0" size="2147483647" type="12,varchar"/>
<column name="stagione" primaryKey="true" required="true" scale="0" size="5" type="5,int2"/>
<foreign-key foreignTable="main" name="location_to_main_foreign_key" onDelete="cascade" onUpdate="none">
<option key="foreignSchemaName" value="public"/>
<option key="exported" value="false"/>
<reference foreign="serial_link" local="serial_link"/>
<reference foreign="stagione" local="stagione"/>
</foreign-key>
<unique name="location_primary_key">
<unique-column name="serial_link"/>
<unique-column name="stagione"/>
</unique>
</table>
<table alias="public" name="main">
<column name="nomecasa" primaryKey="false" required="false" scale="0" size="2147483647" type="12,text"/>
<column name="valutazione" primaryKey="false" required="false" scale="0" size="5" type="12,varchar"/>
<column name="indcp" primaryKey="false" required="false" scale="0" size="2147483647" type="12,text"/>
<column name="stagione" primaryKey="true" required="true" scale="0" size="5" type="5,int2"/>
<column name="serial_link" primaryKey="true" required="true" scale="0" size="10" type="4,int4"/>
<foreign-key foreignTable="appt" name="main_foreign_key" onDelete="cascade" onUpdate="none">
<option key="foreignSchemaName" value="public"/>
<option key="exported" value="true"/>
<reference foreign="serial_link" local="serial_link"/>
<reference foreign="stagione" local="stagione"/>
</foreign-key>
<foreign-key foreignTable="location" name="location_to_main_foreign_key" onDelete="cascade" onUpdate="none">
<option key="foreignSchemaName" value="public"/>
<option key="exported" value="true"/>
<reference foreign="serial_link" local="serial_link"/>
<reference foreign="stagione" local="stagione"/>
</foreign-key>
<foreign-key foreignTable="regioni_catalogo" name="regioni_to_main_foreign_key" onDelete="cascade" onUpdate="none">
<option key="foreignSchemaName" value="public"/>
<option key="exported" value="true"/>
<reference foreign="serial_link" local="serial_link"/>
<reference foreign="stagione" local="stagione"/>
</foreign-key>
<foreign-key foreignTable="zone_catalogo" name="zone_to_main_foreign_key" onDelete="cascade" onUpdate="none">
<option key="foreignSchemaName" value="public"/>
<option key="exported" value="true"/>
<reference foreign="serial_link" local="serial_link"/>
<reference foreign="stagione" local="stagione"/>
</foreign-key>
<unique name="main_primary_key">
<unique-column name="serial_link"/>
<unique-column name="stagione"/>
</unique>
<index name="main_nomecasa_index">
<index-column name="nomecasa"/>
</index>
</table>
<table alias="public" name="regioni_catalogo">
<column name="nomecasa" primaryKey="false" required="false" scale="0" size="2147483647" type="12,text"/>
<column name="serial_link" primaryKey="true" required="true" scale="0" size="10" type="4,int4"/>
<column name="regione" primaryKey="true" required="true" scale="0" size="2147483647" type="12,text"/>
<column name="stagione" primaryKey="true" required="true" scale="0" size="10" type="4,int4"/>
<foreign-key foreignTable="main" name="regioni_to_main_foreign_key" onDelete="cascade" onUpdate="none">
<option key="foreignSchemaName" value="public"/>
<option key="exported" value="false"/>
<reference foreign="serial_link" local="serial_link"/>
<reference foreign="stagione" local="stagione"/>
</foreign-key>
<unique name="regioni_catalogo_primary_key">
<unique-column name="serial_link"/>
<unique-column name="regione"/>
<unique-column name="stagione"/>
</unique>
</table>
<table alias="public" name="zone_catalogo">
<column name="nomecasa" primaryKey="false" required="false" scale="0" size="2147483647" type="12,text"/>
<column name="serial_link" primaryKey="true" required="true" scale="0" size="10" type="4,int4"/>
<column name="zona" primaryKey="true" required="true" scale="0" size="2147483647" type="12,text"/>
<column name="stagione" primaryKey="true" required="true" scale="0" size="10" type="4,int4"/>
<foreign-key foreignTable="main" name="zone_to_main_foreign_key" onDelete="cascade" onUpdate="none">
<option key="foreignSchemaName" value="public"/>
<option key="exported" value="false"/>
<reference foreign="serial_link" local="serial_link"/>
<reference foreign="stagione" local="stagione"/>
</foreign-key>
<unique name="zone_catalogo_primary_key">
<unique-column name="serial_link"/>
<unique-column name="zona"/>
<unique-column name="stagione"/>
</unique>
</table>
</database>
Any help with this gratefully received.