вставить объекты домена в спящий режим в другую базу данных? - PullRequest
1 голос
/ 19 января 2010

Я хочу скопировать все данные определенной таблицы из базы данных1 в базу данных2. В моей системе у меня есть доступ через Hibernate к объекту домена из базы данных 1, мне не нужно преобразовывать структуру данных. У меня есть только родное соединение JDBC к базе данных 2.

Какое наилучшее решение сделать этот отличный скрипт для поддержки всех видов доменных объектов у меня есть? так что этот скрипт только получает мой объект домена и строку подключения к базе данных и вставляет все данные?

Ответы [ 2 ]

1 голос
/ 20 января 2010

Я столкнулся с аналогичной проблемой, когда мне требовалась возможность экспортировать каждую спящую сущность в сценарий SQL, другими словами, если у вас был объект Person с двумя свойствами (имя пользователя, пароль), вы должны иметь возможность генерировать оператор вставки SQL этого объекта.

Person.username = x Person.password = y

тогда процесс извлечет из этого объекта эквивалентную вставку SQL и создаст что-то вроде:

вставить в персональные (имя пользователя, пароль) значения ('x', 'y');

Однако мое решение основывалось на том факте, что сопоставления выполняются с использованием аннотаций гибернации, а не конфигурации XML. Если это ваш случай, вы можете добиться того же за 1 или 2 рабочих дня, просто прочитайте аннотации. отмечая, что вам придется сделать дополнительный шаг, который выполняет вставки SQL в другой БД.

К вашему сведению: этот метод toSQL () был добавлен в суперкласс ( AbstractHibernateEntity ), который расширяет каждый объект гибернации, поэтому вызывать его проще всего.

Это было сложное и наиболее общее решение, однако, если вам нужно только скопировать одну таблицу из БД в другую, я бы предложил просто перейти с простым вызовом JDBC и избежать усложнения вашей жизни; -)

Привет.

1 голос
/ 19 января 2010

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

Если они существуют, вы можете использовать команды, специфичные для базы данных, это было бы очень быстро.

Если нет, вы можете использовать простой jdbc на обоих. Вы можете сделать это в общем виде: -)

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