Реверс-инжиниринг инструментов Hibernate создает набор или список

Две таблицы A и B. B имеет внешний ключ NOT NULL (многие к одному), который указывает на A. В A нет столбцов, что говорит о том, что таблица B существует. Это означает, что связь односторонняя

Созданы классы POJO A и B с помощью обратного проектирования инструментов Eclipse hibernate. Класс B имеет свойство типа A, что правильно.

Но почему класс A имеет свойство List<B>, даже если определенная связь не является двусторонней.

Это для какого-либо преимущества в разработке или так работает реверс-инжиниринг?

Если есть еще таблица C,D,E..., имеющая такое же отношение к A, класс A будет иметь столько же List<?> переменных, и я думаю, что это выглядит некрасиво. Есть ли способ избежать этого?


person Ramanujan R    schedule 06.02.2017    source источник
comment
Это означает, что связь односторонняя. Извините, но это полное непонимание основ с вашей стороны.   -  person Alan Hay    schedule 06.02.2017
comment
@AlanHay Почему это?   -  person Ramanujan R    schedule 06.02.2017


Ответы (1)


Инструменты Eclipse JPA предназначены для создания двусторонней связи, когда они находят внешний ключ из одной таблицы в другую; У меня нет упоминаний об этом, это эмпирический вывод, основанный на многолетнем использовании Eclipse.

Такое поведение довольно распространено: Eclipse создает для вас поле @ManyToOne в классе B, который является владеющей стороной отношения, и поле @OneToMany в классе A, который является зависимым. > Сторона отношений. Это означает, что вам нужно действовать на стороне владельца, если вы хотите, чтобы какие-либо изменения сохранялись в базе данных; и это также означает, что вы можете удалить это поле, если оно вам не нужно.

Насколько я знаю, вы не можете сказать Eclipse, чтобы он избегал создания зависимых сторон, вы должны удалить их самостоятельно.

person Giovanni Lovato    schedule 06.02.2017
comment
Итак, вот как работают инструменты гибернации, верно? Не могли бы вы предложить какие-либо другие инструменты обратного проектирования hibernate. - person Ramanujan R; 06.02.2017
comment
Я не знаю ни одной схемы для bean-инструмента, который создаст только одну сторону отношений. Вас действительно беспокоит List<B>? Почему бы просто не удалить их? - person Giovanni Lovato; 06.02.2017