Вставка карты в базу данных с использованием Hibernate - PullRequest
0 голосов
/ 20 марта 2012

У меня есть таблица с четырьмя столбцами, скажем

P_Key(int), Ref_Key(int), Key(String), Value(Integer).

Я хочу избежать нескольких операторов создания, сохраняя карту вместе с Ref_key в этой базе данных.Карта содержит ключи и соответствующее значение. Она создаст несколько строк для этого Ref_key, используя записи с карты. Я использую hibernate.

Предположим, я хочу сохранить следующую карту:

"Me" -> 0
"You" -> 10
"They" -> 12

и Ref_Key равен 123.

Тогда в таблице должно быть 3 строки.

P_Key Ref_Key Key Value
1      123    "Me" 0
2      123    "You" 10
3      123    "They" 12

Предполагается, что ключ начинается с 1 и автоматически увеличивается.

Чтоэто тот подход, которому я должен следовать?

1 Ответ

1 голос
/ 20 марта 2012

Если вы имеете в виду « вставьте операторы » вместо « create операторов »;Я не уверен, что вы можете: база данных должна получить 3 INSERT для добавления 3 строк в базу данных.Но Hibernate должен объединить их и отправить только 1 сетевой запрос (пакетирование запросов).

Подход, который я предлагаю:

  • Создайте @Entity с форматом таблицы.
  • Создайте один экземпляр вашей сущности для каждого элемента вашей карты.
  • Просто сохраните все экземпляры.
  • Закройте вашу транзакцию (я имею в виду flush).

См. http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/batch.html для получения дополнительной информации о дозировании.ПРИМЕЧАНИЕ. К сожалению, Hibernate отключает пакетирование для автоматически увеличиваемых первичных ключей!

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