Обработка спящих двунаправленных отношений Один ко Многим - PullRequest
0 голосов
/ 02 декабря 2018

У меня есть две таблицы внутри моего старого приложения.

Host и Tables.Таблица Host имеет отношение внешнего ключа (Tables_fk) column с Tables.В моем коде у меня есть метод, как показано ниже.

public class Tables {
    public void addHosts(Host host) {
         getHostsCollection().add(host);
    }
}

Теперь я делю свою базу данных, и Tables перейдет в отдельную базу данных.Теперь я удаляю столбец Tables_fk из Host и добавляю туда столбец Table_ID, который я напишу из своего приложения.Теперь, поскольку я записываю Table_ID в таблицу хостов из приложения, я предполагаю, что нет необходимости в существующем addHosts(Host host) mwthod.

Я прав?Кроме того, что Hibernate добавляет с этим методом, поскольку таблица Tables не имеет отношения внешнего ключа с Host.

1 Ответ

0 голосов
/ 02 декабря 2018

Прежде всего, если вы удалите таблицу из своей базы данных, hibernate больше не будет работать для отношения ManyToOne (сущность Table), поэтому:

вам нужно удалить аннотацию ManyToOne в вашем классе Table изатем измените его на @ Transient или полностью удалите переменную hosts вместе с геттерами и сеттерами

И если вы это сделаете,ваши отношения больше не являются двунаправленными , эти отношения станут однонаправленными , и они отлично работают, и вы все равно можете получить все свои столбцы "таблиц"ряды!

Обратите внимание, что добавление столбца отличается от добавления внешнего ключа, а раздел, о котором вы упомянули об удалении Tables_fk, создает неоднозначность

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...