Hi,
I am using xdoclet cvs (as of today). I am trying to model a tree relation using CMR
and Value Objects. But I cannot get it to work. Maybe some enlightened soul on this
list can shed some light on this issue? Help will be very much appreciated.
Here is what I want to model:
I have a bean Account, which has zero or more child-accounts.
What do I want to have:
If I read the recent posts on the issue correctly, I want 'compose' semantic. Because
when I create a whole account-sub-tree on the client side (using value objects), I the
client should only tell the server to add the root node, all other nodes would be
added indirectly by the server.
Now, I have experimented quite a lot with different attributes and constelations, here
is my best guess ATM:
/**
* get child Accounts
*
* @ejb.interface-method view-type="local"
*
* @ejb.relation name="Account-Account"
* role-name="One parent Account has multiple child Accounts"
*
* @jboss.target-relation fk-column="AccountId_fk"
* related-pk-field="id"
*
* @ejb.value-object
* compose="com.vescon.aum.common.valueobject.masterdata.AccountValue"
* compose-name="ChildAccounts"
* match="*"
* members="com.vescon.aum.server.iface.masterdata.AccountLocal"
* members-name="Account"
* relation="external"
* type="Collection"
*
**/
public abstract Collection getChildAccounts();
/**
* set related Addresses
*
* @ejb.interface-method view-type="local"
**/
public abstract void setChildAccounts(Collection childAccounts);
/**
* get parent Account
*
* @ejb.interface-method view-type="local"
* @ejb.relation name="Account-Account"
* role-name="One child Account has one parent Accounts"
* cascade-delete="yes"
*
* @jboss.relation fk-column="AccountId_fk"
* related-pk-field="id"
*
* @ejb.value-object
* match="*"
* relation="external"
*
* @jboss.not-persisted-field
*
**/
public abstract AccountLocal getParentAccount();
/**
* get parent Account
*
* @ejb.interface-method view-type="local"
**/
public abstract void setParentAccount(AccountLocal parentAccount);
Then all compiles, but the AccountValue is missing the feature 'getParentAccount ()'.
When I change the 'one-side' of the relation to:
/**
* get parent Account
*
* @ejb.interface-method view-type="local"
* @ejb.relation name="Account-Account"
* role-name="One child Account has one parent Accounts"
* cascade-delete="yes"
*
* @jboss.relation fk-column="AccountId_fk"
* related-pk-field="id"
*
* @ejb.value-object
* compose="com.vescon.aum.common.valueobject.masterdata.AccountValue"
* compose-name="AccountValue"
* match="*"
* relation="external"
*
* @jboss.not-persisted-field
*
**/
public abstract AccountLocal getParentAccount();
I do get the missing 'getParrentAccount ()', but it returns an 'AccountLocal' instead
of an 'AccountValue', which is totaly useless on the client side of course.
Does anybody know how I can get out of this dillema?
many thanks in advance,
Andreas
PS: I can post more details if needed
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Xdoclet-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user