[Seasar-user:3250] Re: ALTER文を動的に

Hirotaka HONMA manhole
2006年 2月 22日 (水) 08:41:50 JST


本間です。

on Wed, 22 Feb 2006 01:24:24 +0900
in [Seasar-user:3246] ALTER文を動的に
"J.r0ck" <[E-MAIL ADDRESS DELETED]> wrote:

> J.r0ckです
> 
> かなりディープな使い方なのでだめもとで質問です。
> 
> S2JDBCでALTER文を発行したいのですが
> ALTER文を動的に生成したいのです。
> 
> 要件としては、データ移行ツールを作っていまして
> ALTER SEQUENCE SEQ_PAGE_ID RESTART WITH 1000;
> の1000部分を移行データの最大シーケンスID+1で動的に変更したいと
> いうわがままな内容です。
> 
> ALTER文なので1000の部分はバインドできないのは周知なんですが
> diconでは
>     <component name="ResetSequenceHandler"
>         class="org.seasar.extension.jdbc.impl.BasicUpdateHandler">
>         <property name="sql">
>         <![CDATA[
>             "ALTER SEQUENCE SEQ_PAGE_ID RESTART WITH"
>         ]]>
>         </property>
>     </component>
> としといて、handler.execute()の前にSQL文をいじくる方法ってないでしょうか?

ぱっと思いつきですが、「埋め込み変数コメント」ではどうでしょ
うか?
http://s2dao.seasar.org/ja/s2dao.html#SQLBind

  ALTER SEQUENCE SEQ_PAGE_ID RESTART WITH /*$seqno*/1000

という感じでできそうに思います。

# S2JDBCではなくS2Daoが必要かも...
# QUERYアノテーションを使用するとかで。

---
本間 宏崇 /** Hirotaka HONMA */
[E-MAIL ADDRESS DELETED]




Seasar-user メーリングリストの案内