-
1. Re: Bug SQL statement generated by JBoss-CMR
a13519 Jul 20, 2002 9:59 PM (in response to a13519)as
-
2. Re: Bug SQL statement generated by JBoss-CMR
dsundstrom Jul 21, 2002 12:01 AM (in response to a13519)You can't have a CMP field and CMR field mapped to the same column. Remove the following from the Employee entity and it should start working: [pre]
<cmp-field>
<field-name>oid</field-name>
<column-name>oid</column-name>
</cmp-field>
[/pre] -
3. Re: Bug SQL statement generated by JBoss-CMR
a13519 Jul 21, 2002 8:36 PM (in response to a13519)Thanks, right now it is working properly.
-
4. Re: Bug SQL statement generated by JBoss-CMR
satria Oct 24, 2002 11:19 PM (in response to a13519)hi, i'm having the same problem too, and i have tried some possible combination changin the jbossjdbc-cmp.xml, and the sql statement in log file changed, but still error (10:08:39,708 ERROR [ProductInsEJB] Could not create entity java.sql.SQLException: Column not found: Unknown column 'thePrincipal' in 'field list'),
here are my descriptors and log file:
server.log:
2002-10-25 10:08:39,588 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.ProductInsEJB] Executing SQL: SELECT COUNT(*) FROM tbl_prod_ins WHERE prod_ins_id=?
2002-10-25 10:08:39,698 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.ProductInsEJB] Executing SQL: INSERT INTO tbl_prod_ins (prod_ins_id, invst_typ_id, principal_id, prod_ins_nm, thePrincipal, investmentType) VALUES (?, ?, ?, ?, ?, ?)
2002-10-25 10:08:39,708 ERROR [org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.ProductInsEJB] Could not create entity
java.sql.SQLException: Column not found: Unknown column 'thePrincipal' in 'field list'
at org.gjt.mm.mysql.MysqlIO.sendCommand(Unknown Source)
ejb-jar.xml:
ProductIns CMP EJB
....
<cmp-version>2.x</cmp-version>
<abstract-schema-name>ProductIns</abstract-schema-name>
<cmp-field><field-name>productInsId</field-name></cmp-field>
<cmp-field><field-name>investmentTypeId</field-name></cmp-field>
<cmp-field><field-name>principalId</field-name></cmp-field>
<cmp-field><field-name>productInsName</field-name></cmp-field>
....
<ejb-relation>
<ejb-relation-name>ProductIns-InvestmentType</ejb-relation-name>
<ejb-relationship-role>
<ejb-relationship-role-name>ProductIns-typeof-InvestmentType</ejb-relationship-role-name>
Many
<cascade-delete />
<relationship-role-source>
<ejb-name>ProductInsEJB</ejb-name>
</relationship-role-source>
<cmr-field>
<cmr-field-name>investmentType</cmr-field-name>
<cmr-field-type>java.util.Collection</cmr-field-type>
</cmr-field>
</ejb-relationship-role>
<ejb-relationship-role>
<ejb-relationship-role-name>InvestmentType-has-ProductIns</ejb-relationship-role-name>
One
<relationship-role-source>
<ejb-name>InvestmentTypeEJB</ejb-name>
</relationship-role-source>
</ejb-relationship-role>
</ejb-relation>
<ejb-relation>
<ejb-relation-name>ProductIns-ThePrincipal</ejb-relation-name>
<ejb-relationship-role>
<ejb-relationship-role-name>ProductIns-owned-by-ThePrincipal</ejb-relationship-role-name>
Many
<cascade-delete />
<relationship-role-source>
<ejb-name>ProductInsEJB</ejb-name>
</relationship-role-source>
<cmr-field>
<cmr-field-name>thePrincipal</cmr-field-name>
<cmr-field-type>java.util.Collection</cmr-field-type>
</cmr-field>
</ejb-relationship-role>
<ejb-relationship-role>
<ejb-relationship-role-name>ThePrincipal-has-ProductIns</ejb-relationship-role-name>
One
<relationship-role-source>
<ejb-name>ThePrincipalEJB</ejb-name>
</relationship-role-source>
</ejb-relationship-role>
</ejb-relation>
jbossjdbc-cmp.xml:
<ejb-name>ProductInsEJB</ejb-name>
<table-name>tbl_prod_ins</table-name>
<cmp-field><field-name>productInsId</field-name><column-name>prod_ins_id</column-name></cmp-field>
<cmp-field><field-name>investmentTypeId</field-name><column-name>invst_typ_id</column-name></cmp-field>
<cmp-field><field-name>principalId</field-name><column-name>principal_id</column-name></cmp-field>
<cmp-field><field-name>productInsName</field-name><column-name>prod_ins_nm</column-name></cmp-field>
<ejb-relation>
<ejb-relation-name>ProductIns-InvestmentType</ejb-relation-name>
<foreign-key-mapping/>
<ejb-relationship-role-name>ProductIns-typeof-InvestmentType</ejb-relationship-role-name>
<key-fields>
<key-field>
<!--<field-name>invst_typ_id</field-name>
<column-name>invst_typ_id</column-name>-->
</key-field>
</key-fields>
<ejb-relationship-role-name>InvestmentType-has-ProductIns</ejb-relationship-role-name>
<key-fields>
</key-fields>
</ejb-relation>
<ejb-relation>
<ejb-relation-name>ProductIns-ThePrincipal</ejb-relation-name>
<foreign-key-mapping/>
<ejb-relationship-role-name>ProductIns-owned-by-ThePrincipal</ejb-relationship-role-name>
<key-fields>
<key-field>
<!--<field-name>principal_id</field-name>
<column-name>principal_id</column-name>-->
</key-field>
</key-fields>
<ejb-relationship-role-name>ThePrincipal-has-ProductIns</ejb-relationship-role-name>
<key-fields>
</key-fields>
</ejb-relation>
.satria.