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

Schreibe einen Kommentar