Я новичок в весенних mvc, roo и hibernate.
Я пытаюсь создать две таблицы с отношением 1: M.
Например,
Я хочу две сущности, Человек и Автомобиль. У одного человека может быть много машин.
Я создал сущности, используя 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
Генерируемый класс для автомобиля:
@RooJavaBean
@RooToString
@RooEntity
public class Car {
private String Name;
@ManyToOne
private Person owner;
}
Генерируемый класс для Персона
@RooJavaBean
@RooToString
@RooEntity
public class Person {
private String Name;
@OneToMany(cascade = CascadeType.ALL)
private Set<Car> ownedCars = new HashSet<Car>();
}
Однако в базе данных есть 3 таблицы (состоит из двух)
Таблица CAR (как и ожидалось)
CREATE TABLE "TEST"."CAR"
(
"ID" NUMBER(19,0),
"NAME" VARCHAR2(255 BYTE),
"VERSION" NUMBER(10,0),
"OWNER" NUMBER(19,0)
)
Таблица ЧЕЛОВЕК (как и ожидалось)
CREATE TABLE "TEST"."PERSON"
(
"ID" NUMBER(19,0),
"NAME" VARCHAR2(255 BYTE),
"VERSION" NUMBER(10,0)
)
, а также PERSON_OWNED_CARS (что не ожидается, отношения между многими не много)
CREATE TABLE "TEST"."PERSON_OWNED_CARS"
(
"PERSON" NUMBER(19,0),
"OWNED_CARS" NUMBER(19,0)
)
Почему генерируется последняя таблица? Какова цель последней таблицы, это не много ко многим отношениям? Можно ли этого избежать? Я что-то не так делаю?