one-one relationship problem
gateway87 Sep 30, 2002 11:02 PMHi, gurus :-)
I have a one-to-one relationship with two tables. UserInfo(userId, username, password) and UserStat(userId, firstname, lastname, phone, fax, address).
ejb-jar.xml:
<ejb-relation >
<ejb-relation-name>USER_INFO-cmp20-USER_STAT-cmp20</ejb-relation-name>
<!-- bidirectional -->
<ejb-relationship-role >
<ejb-relationship-role-name>USER_INFO-cmp20-has-USER_STAT-cmp20</ejb-relationship-role-name>
One
<relationship-role-source >
<ejb-name>UserInfo</ejb-name>
</relationship-role-source>
<cmr-field >
<cmr-field-name>userStat</cmr-field-name>
</cmr-field>
</ejb-relationship-role>
<ejb-relationship-role >
<ejb-relationship-role-name>USER_STAT-cmp20-has-USER_INFO-cmp20</ejb-relationship-role-name>
One
<cascade-delete />
<relationship-role-source >
<ejb-name>UserStat</ejb-name>
</relationship-role-source>
<cmr-field >
<cmr-field-name>userInfo</cmr-field-name>
</cmr-field>
</ejb-relationship-role>
</ejb-relation>
jbosscmp-jdbc.xml:
<ejb-relation>
<ejb-relation-name>USER_INFO-cmp20-USER_STAT-cmp20</ejb-relation-name>
<foreign-key-mapping/>
<ejb-relationship-role>
<ejb-relationship-role-name>USER_INFO-cmp20-has-USER_STAT-cmp20</ejb-relationship-role-name>
<key-fields>
<key-field>
<field-name>userid</field-name>
<column-name>userId</column-name>
</key-field>
</key-fields>
</ejb-relationship-role>
<ejb-relationship-role>
<ejb-relationship-role-name>USER_STAT-cmp20-has-USER_INFO-cmp20</ejb-relationship-role-name>
<fk-constraint>true</fk-constraint>
<key-fields/>
</ejb-relationship-role>
</ejb-relation>
When I want to get the UserInfoLocal and UserStatLocal, I get an exception caused by "java.sql.SQLException: ORA-00936: missing expression".
2002-09-30 17:09:16,312 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCFindByPrimaryKeyQuery.UserInfo.findByPrimaryKey] Executing SQL: SELECT userId FROM USER_INFO WHERE userId=?
2002-09-30 17:09:16,421 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadEntityCommand.UserInfo] Executing SQL: SELECT userName, password FROM USER_INFO WHERE (userId=?)
2002-09-30 17:09:16,453 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadRelationCommand.UserInfo] Executing SQL: SELECT FROM USER_STAT WHERE (userId=?)
2002-09-30 17:09:16,484 ERROR [org.jboss.ejb.plugins.LogInterceptor] TransactionRolledbackLocalException, causedBy:
java.sql.SQLException: ORA-00936: missing expression
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
at oracle.jdbc.oci8.OCIDBAccess.check_error(OCIDBAccess.java:1597)
........
Please notice the SQL script: SELECT <blank?> FROM USER_STAT WHERE (userId=?)
Could you please tell me what's wrong with it? I'm using Jboss3.02. Thanks in advance.
Gateway