вставка один ко многим с помощью iBATIS - PullRequest
0 голосов
/ 20 сентября 2011

У меня есть тип Word со свойством Topics, которое является объектом List.У меня есть две таблицы в базе данных: слова и темы.Я хочу написать слово в таблице слов и сохранить каждую тему с соответствующим idWord в темах.Для оператора вставки слова я использую generateKey и keyProperty, чтобы получить idWord, который mySQL назначает слову.

Но я не знаю, как это сделать, я прочитал документацию по iBATIS, но это слишкомВкратце с инструкциями INSERT, я мог бы получать данные из слов и тем в тип Word, но не вместо этого.

Большое спасибо !!

PS Не могли бы вы предложить больше документации iBATIS ??

1 Ответ

2 голосов
/ 11 октября 2011

Вы можете использовать тег selectKey внутри вашего первого инертного запроса к таблице;это вернет значение идентификатора столбца, который был сгенерирован.Используйте этот идентификатор для заполнения второй таблицы.

 <insert id="InsertLineItem" parameterClass="LineItem">
  INSERT INTO [LinesItem] 
  (Order_Id, LineItem_LineNum, Item_Id, LineItem_Quantity, LineItem_UnitPrice)
  VALUES
  (#Order.Id#, #LineNumber#, #Item.Id#, #Quantity#, #Item.ListPrice#)

  <selectKey resultClass="int" keyProperty="id" >
    SELECT @@IDENTITY AS ID
  </selectKey>
  </insert>
...