tutorial roo rc3 instalar español hibernate spring-mvc spring-roo

rc3 - Spring Roo, Hibernate, una relación de uno a muchos crea una tabla adicional



spring roo tutorial (1)

No estoy seguro de cómo Roo logra esto, pero necesita vincular los lados de las relaciones bidireccionales con mappedBy :

@OneToMany(cascade = CascadeType.ALL, mappedBy = "owner") private Set<Car> ownedCars = new HashSet<Car>();

De lo contrario, se interpretan como dos relaciones unidireccionales diferentes, y la relación de Person a Car se implementa a través de la tabla de unión (es un comportamiento predeterminado para las relaciones unidireccionales de uno a muchos).

Soy nuevo en spring mvc, roo e hibernate.

Intento crear dos tablas con relación 1: M.

Por ejemplo, quiero dos entidades, Person y Car. Una persona puede tener muchos autos.

Creé entidades usando 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

Clase generada para el automóvil:

@RooJavaBean @RooToString @RooEntity public class Car { private String Name; @ManyToOne private Person owner; }

Clase generada para la persona

@RooJavaBean @RooToString @RooEntity public class Person { private String Name; @OneToMany(cascade = CascadeType.ALL) private Set<Car> ownedCars = new HashSet<Car>(); }

Sin embargo, en la base de datos, hay 3 tablas (en lugar de dos)

Tabla CAR (como se esperaba)

CREATE TABLE "TEST"."CAR" ( "ID" NUMBER(19,0), "NAME" VARCHAR2(255 BYTE), "VERSION" NUMBER(10,0), "OWNER" NUMBER(19,0) )

Tabla PERSONA (como se esperaba)

CREATE TABLE "TEST"."PERSON" ( "ID" NUMBER(19,0), "NAME" VARCHAR2(255 BYTE), "VERSION" NUMBER(10,0) )

y también PERSON_OWNED_CARS (que no se espera, no es una relación de muchos a muchos)

CREATE TABLE "TEST"."PERSON_OWNED_CARS" ( "PERSON" NUMBER(19,0), "OWNED_CARS" NUMBER(19,0) )

¿Por qué se genera la última tabla? ¿Cuál es el propósito de la última tabla, no es una relación de muchos a muchos? ¿Se puede evitar? ¿Estoy haciendo algo mal?