Spring Roo, Hibernate, Eins zu viele relation schafft zusätzliche Tabelle
Ich bin neu in spring mvc, roo und hibernate.
Ich versuche, erstellen Sie zwei Tabellen mit 1:M-Beziehung.
Beispielsweise
Ich möchte zwei Entitäten, Person und Fahrzeug. Eine person kann beliebig viele Autos.
Habe ich erstellt Entitäten mit Roo
entity --class ~.domain.Person
field string Name
entity --class ~.domain.Car
field string Name
field reference --fieldName owner --type ~.domain.Person
field set --fieldName ownedCars --type ~.domain.Car --class ~.domain.Person --cardinality ONE_TO_MANY
Generierte Klasse für Fahrzeug:
@RooJavaBean
@RooToString
@RooEntity
public class Car {
private String Name;
@ManyToOne
private Person owner;
}
Generierte Klasse für Person
@RooJavaBean
@RooToString
@RooEntity
public class Person {
private String Name;
@OneToMany(cascade = CascadeType.ALL)
private Set<Car> ownedCars = new HashSet<Car>();
}
Jedoch in der Datenbank gibt es 3 Tabellen (anstelle von zwei)
Tabelle AUTO (wie erwartet)
CREATE TABLE "TEST"."CAR"
(
"ID" NUMBER(19,0),
"NAME" VARCHAR2(255 BYTE),
"VERSION" NUMBER(10,0),
"OWNER" NUMBER(19,0)
)
Table PERSON (wie erwartet)
CREATE TABLE "TEST"."PERSON"
(
"ID" NUMBER(19,0),
"NAME" VARCHAR2(255 BYTE),
"VERSION" NUMBER(10,0)
)
und auch PERSON_OWNED_CARS (das ist nicht zu erwarten, es ist nicht viele zu viele Beziehung)
CREATE TABLE "TEST"."PERSON_OWNED_CARS"
(
"PERSON" NUMBER(19,0),
"OWNED_CARS" NUMBER(19,0)
)
Warum ist die Letzte Tabelle generiert? Was ist der Zweck der letzten Tabelle, es sind nicht viele zu viele Beziehung? Kann es vermieden werden? Mache ich etwas falsch?
InformationsquelleAutor der Frage Emir | 2011-03-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin mir nicht sicher, wie Roo verwaltet diese, aber Sie brauchen, um link-Seiten von bidirektionalen Beziehungen mit
mappedBy
:Sonst werden Sie interpretiert werden als zwei verschiedene unidirektionale Beziehungen, und die Beziehung von
Person
zuCar
erfolgt über join-Tabelle (es ist ein Standard-Verhalten für die unidirektionale eins-zu-viele Beziehungen).InformationsquelleAutor der Antwort axtavt