Problem with simple 1-to-1 Relation with xdoclet and unknown
stud Sep 18, 2004 9:49 PMHello everyone,
i'm desperatly trying to write a simple CMR between two Entity Beans using XDoclet and the additional challenge of using unkown primary keys :)
I have two beans, a User and a Folder bean. Every User has a folder but not every Folder belongs to a user.
My code so far:
UserBean.java
/**
* @ejb.bean
* name = "User"
* schema = "UserSchema"
* jndi-name = "User";
* description = "A User Bean"
* type = "CMP"
* cmp-version = "2.x"
* @ejb.pk
* class = "java.lang.Object"
* generate = "false"
* ---
* @jboss.unknown-pk
* class = "java.lang.Integer"
* column-name = "user_id"
* auto-increment = "true"
* sql-type = "INTEGER"
* jdbc-type = "INTEGER"
* @jboss.persistence
* pk-constraint = "false"
* remove-table = "true"
* @jboss.entity-command
* name = "hsqldb-fetch-key"
*/
public abstract class UserBean implements EntityBean {
...
/**
* @ejb.interface-method
* @ejb.relation
* name = "USER-has-one-FOLDER"
* role-name = "Every USER has one FOLDER"
* target-ejb = "Folder"
* target-role-name = "Some FOLDER belong to a USER"
* target-cascade-delete = "yes"
* ---
* @jboss.relation
* related-pk-field = "folder"
* fk-column = "folder_id"
* dbindex = "true"
*
*/
public abstract Folder getFolder();
}Folder.java
/**
* @ejb.bean
* name = "Folder"
* schema = "FolderSchema"
* jndi-name = "Folder";
* description = "A Folder Bean"
* type = "CMP"
* cmp-version = "2.x"
* @ejb.pk
* class = "java.lang.Object"
* generate = "false"
* ---
* @jboss.unknown-pk
* class = "java.lang.Integer"
* column-name = "folder_id"
* auto-increment = "true"
* sql-type = "INTEGER"
* jdbc-type = "INTEGER"
* @jboss.persistence
* pk-constraint = "false"
* remove-table = "true"
* @jboss.entity-command
* name = "hsqldb-fetch-key"
*/
public abstract class FolderBean implements EntityBean {
... (nothing specific to the relation)
}This however gives me a DeploymentException:
Role 'Some FOLDER belong to a USER' on Entity Bean 'Folder' : CMP field for key not found: field name='folder_id'
I assume because of me using an unknown primary key its field is not a normal CMP field or something...
Is there a way to work around this?
Does anyone know more?
Thanks for the help,
Stud