Hello all,
I'm coming across a little problem. In my
database design I have the following tables:
PROPOSAL is linked to PROPOSAL_ROLE by
1-M
PROPOSAL_ROLE is linked to USER by
M-1.
Therefore PROPOSAL_ROLE is used as a join table
that will link the two other tables. This is used because a user can play a
certain role on many different proposals, and a proposal can have many users
that it's involved with.
I've currently implemented the PROPOSAL_ROLE
table as ProposalRole CMP Entity bean and specified the above
relationships in ejb-jar.xml, but I'm looking at another example using
WebLogic 6.1, and in the file weblogic-cmp-rdbms-jar.xml, they are specifiying
the join table relationships and NOT creating a CMP entity bean for the join
table, but instead just specifying the MANY-TO-MANY relationships between the
two beans in ejb-jar.xml. Therefore in my example the proposal bean would
proposal.getUsers(), and the user bean would have user.getProposals(). This
way I would not have to model the ProposalRole as an entity bean with
getProposal() and getUser() methods, rather this would happen "behind the
scenes." However, in my join table PROPOSAL_ROLE, I am storing two other
fields that are important in recognizing the particular relationship. I've
included a "role" and "effort percent" column that give particular data about
the relationship that a user has with a particular proposal in the system. So
I can see why I would want to have a ProposalRoleBean in this case to be able
to access that data.
I guess what I'm really asking is this: Do all
JOIN tables have to modeled as CMP Entity beans if the table in itself
contains columns of data on top of just storing the two foreign keys of the
other two linked tables? Also, how does one specify the links between the join
table and the two other tables in Resin (similar to how
weblogic-cmp-rdbms-jar.xml does it)?
Thanks for any suggestions!
Ryan LeCompte