EJB3 Multi-Table

Status
Nicht offen für weitere Antworten.

lordheady

Neues Mitglied
Hi Leute,

ich hab den Auftrag bekommen in EJB3 ein Entity Bean zu schreiben, welches sich auf 2 Datenbank Tabellen bezieht, die in einer 1…n Beziehung stehen.
  1. Frage ist das überhaupt möglich? (hab ein Artikel gelesen http://www.objects-at-work.de/pmwiki/EJBGlossar/M
    bei Multi-table steht, dass es möglich ist, mehr als nur "1…1" Beziehungen in einem Entity Bean herzustellen,
    paradox ist nur das Codebeispiel, welches nur eine gewöhnliche 1…1 Beziehung zeigt)
  2. Wenn es möglich ist … Wie mach ich das?(Codebeispiel wären sehr hilfreich)
  3. Alternativen -> würde sonst ein zweites Entity Bean schreiben…
Vielen Dank für Eure Antworten im Voraus!!
 
G

Guest

Gast
lordheady hat gesagt.:
Frage ist das überhaupt möglich? (hab ein Artikel gelesen http://www.objects-at-work.de/pmwiki/EJBGlossar/M
bei Multi-table steht, dass es möglich ist, mehr als nur "1…1" Beziehungen in einem Entity Bean herzustellen,
paradox ist nur das Codebeispiel, welches nur eine gewöhnliche 1…1 Beziehung zeigt)
Ja, es ist möglich, sonst wäre das ganze EJB nur ein Witz. In dem Beispiel wird einfach nur gezeigt, wie man mehrere Tabellen zu einer logischen Entity-Bean zusammenfassen kann.
lordheady hat gesagt.:
Wenn es möglich ist … Wie mach ich das?(Codebeispiel wären sehr hilfreich)
Es gibt Annotations für alle Typen von Relationships. Siehe OneToMany, ManyToMany, OneToOne etc.
lordheady hat gesagt.:
Alternativen -> würde sonst ein zweites Entity Bean schreiben…
So ist es. Modeliere das ganze zunächst rein in Java, dann kommt der Rest mit Annotationen etc.

OneToMany-Beispiel
Code:
@Entity
class Auftrag
{
   ...

   @OneToMany( mappedBy = "auftrag" )
   private Set<Auftragsposition>;

   ...
}

@Entity
class Auftragsposition
{
   ...

   @ManyToOne
   private Auftrag auftrag;

   ...
}
 

kleiner_held

Top Contributor
Multi-table Mapping bedeutet, dass die Attribute von einem Entity Bean in mehreren unterschiedlichen Tabellen liegen koennen.
Das geht natuerlich nur, wenn die Tabellen in der Datenbank eine 1 zu 0..1 Beziehung haben, ganz klassisch mit einem Fremdschluessel. 1 zu n oder n zu m kann man nicht in einem Entity Bean abbilden, dazu nimmt man dann mehrere Entity Beans und @OneToMany bzw @ManyToMany Annotations, das hat dann aber primaer nichts mehr mit Multi-table Mapping zu tun.

Der von dir zitierte Artikel sagt uebrigens nichts anderes aus.
 
G

Guest

Gast
kleiner_held hat gesagt.:
Multi-table Mapping bedeutet, dass die Attribute von einem Entity Bean in mehreren unterschiedlichen Tabellen liegen koennen.
Das geht natuerlich nur, wenn die Tabellen in der Datenbank eine 1 zu 0..1 Beziehung haben, ganz klassisch mit einem Fremdschluessel. 1 zu n oder n zu m kann man nicht in einem Entity Bean abbilden, dazu nimmt man dann mehrere Entity Beans und @OneToMany bzw @ManyToMany Annotations, das hat dann aber primaer nichts mehr mit Multi-table Mapping zu tun.

Der von dir zitierte Artikel sagt uebrigens nichts anderes aus.

doch, man kann eine 1:n beziehung von darunterliegenden dbtabellen in einer bean agregieren. wie du im beispiel ja auch siehts, haben kunde und anschrift eine 1:n beziehung.
 

kleiner_held

Top Contributor
Nur die Grafik enthaelt eine 1 zu N Darstellung.
Aber die Grafik passt nicht zu dem Beispiel-Code (In der Grafik heisst die Tabelle ANSCHRIFT im Code ADRESSE).
Ausserdem, wie soll das denn funktionieren? Wenn wirklich in der Tabelle ADRESSE mehrere Einträge per Fremdschlüssel auf den gleichen Eintrag in der Kundentabelle verweisen, was sollte dann in Kunde.strasse stehen? Eine kommaseparierte Liste aller Einträge? Wohl eher nicht.
 
G

Guest

Gast
kleiner_held hat gesagt.:
was sollte dann in Kunde.strasse stehen? Eine kommaseparierte Liste aller Einträge? Wohl eher nicht.

ich hab das bild nicht so genau angesehen, aber das geht m.m. schon. natürlich ist strasse dann keine kommaseparierte liste sondern eine echte list (e.g. Arraylist) :lol:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B EJB3.0 Projekt - Eclipse Allgemeines EE 1
S Rich Client Application mit Eclipse/WebLogic/EclipseLink/EJB3 Allgemeines EE 2
M Problem mit Lookup auf EJB3 mit Glassfish Allgemeines EE 11
jogep EJB3 Konfigurieren Allgemeines EE 2
B Facelets + EJB3 Allgemeines EE 3
ps EJB3 in Tomcat. das hat selbst mich erstaunt Allgemeines EE 18
K mehrere Datenbanken mit JBoss 4.2 und EJB3 Allgemeines EE 3
J ejb3.0 datenbank problem Allgemeines EE 2
T [EJB3] Große Text- / Binärdateien zurückgeben Allgemeines EE 4
T Verständnisfragen zu (EJB3-) Security Allgemeines EE 6
S Hibernate EJB3 Allgemeines EE 2
D EJB3.0 Projekt (Eclipse) Allgemeines EE 3
B DTO - bedeutung in EE5 mit EJB3 Allgemeines EE 5
H Implementing an EJB3 Interceptor without touching the projec Allgemeines EE 4
X Sun Application Server 9 - EJB3 Zugriffsproblem Allgemeines EE 2
N Deployen einer EJB3.0 Bean Allgemeines EE 4
P EJB3-Standard und dafür geeignetste SQL-Datenbank Allgemeines EE 21
C Fotoverwaltung in einer Multi-User Anwendung Allgemeines EE 4
A Apache Shiro RBAC multi "Mandant" Allgemeines EE 0
Scholle Architecture-related question (Multi-Layer App) Allgemeines EE 2
G Multi User Problem Allgemeines EE 8
T Spring Taskliste abarbeiten - Postgres Table als Queue? Allgemeines EE 3
G JSP- Table Allgemeines EE 3
G JSF Table Dataprovider Allgemeines EE 2
M JSF: PanelGrid vs. Table Allgemeines EE 5
D Struts + Table Allgemeines EE 6

Ähnliche Java Themen

Neue Themen


Oben