Or you could use ContainerManagedRelationships (CMR) from the ejb2.0
specs.
With this you define the relationships between the beans in the
ejb-jar.xml, and declare the abstract getters and setters yo use Set or
Collection.

Be warned that you have to use the 1.5.4 Orion and some of the
relational integrities is not fully implemented/bugfree. It all works
fine but you have to handle the move (remove and add) yourself (or leave
it be and wait for 1.5.5 :)

Have anyone tried it with oracle?

Cheers
Jesper

-----Oprindelig meddelelse-----
Fra: Chris Nias [mailto:[EMAIL PROTECTED]]
Sendt: 24. april 2002 16:49
Til: Orion-Interest
Emne: RE: OffTopic: Entity-Beans and relational structure


If you get the Java 2 Enterprise Edition Developers Guide (I have v
1.2.1 pdf) from www.java.sun.com 
Then it is on page 135 - Mapping Table Relationships to Entity beans
It goes on to describe when you should use entity beans, and when to use
helper classes (hint: that is what you need!)
It also gives a good example with source code.
Be warned though; you will have to use BMP!


-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]] On Behalf Of Maximilian
Eberl
Sent: 24 April 2002 13:13
To: Orion-Interest
Subject: OffTopic: Entity-Beans and relational structure

Excuse me for asking off topic (and stupid), I am just learning to use
Entity Beans on Orion.

In most tutorials entity beans only represent ONE ROW from ONE TABLE,
but
relational databases go far beyond that.

I have a relational database for movies, actors, directors & writers.

So I have a table tblMovies
INT id, VARCHAR title, INT year, VARCHAR description
e.g.:
1, 'Casablanca',1942,'the classical movie'
2, 'The Maltese Falcon',1946,'begin of the dark series'
3, 'The Seawulf',1947,'after the novel from Jack London'
...

I have a tblActors (INT id, VARCHAR name)
1,'Humphrey Bogart'
2,'Ingrid Bergman'
3,'Edward G. Robinson'
...

and in the same manner tblDirectors, tblWriters

And I have tables for the relations, e.g.

tblRoles (INT filmid, INT actorid)
1,1
2,1
1,2
3,3
..
and also tblMisEnScene, tblScreenplay

meaning: Humphrey Bogart (actorid: 1) appeared in 'Casablanca' (filmid:
1)
and 'The Maltese Falcon' (filmid: 2), Ingrid Bergman (actorid: 2)
appeared
in 'Casablanca' (filmid: 1), Edward G. Robinson (actorid: 3) appeared in
'The Seawulf' (filmid: 3) . So this relational structure allows that one
film can have multiple actors, writers, directors and one actor can
appear
in multiple films. Relational basework, of course.

If I want to extract those films in which Humphrey Bogart appeared I can
do
this easily in SQL (used by a Servlet) with:

SELECT title FROM tblFilms WHERE id IN (SELECT filmid FROM tblRoles
WHERE
actorid=(SELECT id FROM tblActors WHERE name='Humphrey Bogart'))

(or as in my case with JOINS from MySQL)

When I do want to write an EJB-Application using this database, how do I
do
this ? How do I represent the relational data ?

Do I have to keep Entity Beans for EVERY row of ANY table ? Do I have to
create temporary tables with all information merged ? This creates a
problem
because one film can have one or more writers (Casablanca had three) and
(in
most cases) more than one actor.

This way  ?

public class MovieBean implements javax.ejb.EntityBean
    {
    String Title;
    String[] Actors;
    ...
    public String getTitle() throws RemoteException;
        {...
        }
    public String[] getActors() throws RemoteException;
        {
        return Actors[];
        }
    }

using Arrays filled from the database with all actors, directors,
writers ?

Please give me a hint ! (Well, I know I am stupid. But it is a good work
to
help stupid persons)


Maximilian Eberl
http://www.derdickemax.de
mailto:[EMAIL PROTECTED]






Reply via email to