[Seasar-user:16356] Re: [S2JDBC-Gen] SQL Server 2008 Express版で問題がありました

Toshihiro Nakamura [E-MAIL ADDRESS DELETED]
2008年 11月 20日 (木) 22:52:41 JST


中村(taedium)です。

> いえ、単に、まったくそこのところが了解できておらず、
> 2008だから、2005のは使ってはまずいだろう、というような短絡的な
> 思考パターンでプレーンなmssqlDialectの方を選択していました。

わかりにくいかもしれないですね。
ドキュメントに記述しておきます。

> しかし、もうひとつの、主キーで、autoIncrementを設定したbigint型のカラムが
> String型のプロパティになってしまう問題は、そのままです。
> とりあえず、こちらに関しては、簡単にパッチをあてて回避しておきます。
> 案外、私のSQL Serverのテーブルの作り方に問題がある、というような可能性も
> あるのかも知れません。(SQL Serverには詳しくはありません。
> 今回、SQL Server 2008から、仕事で使い始めております。)

SQL Server 2005でも再現しました。
bigint型でもautoIncrementかどうかでメタデータの型名が
変わるんですね。
これは想定外でした。

最初提案してもらったように
"bigint identity"でも"bigint"で始まっていることを見て
bigintとして扱ったほうがよさそうですね。

ところで、MicrosoftのJDBCドライバを使わない
理由は何かあるのでしょうか?
Microsoft SQL Server 2005 JDBC ドライバ 1.2 は SQL Server 2008
に対しても使用できるようです。

http://www.microsoft.com/downloads/details.aspx?FamilyId=C6C3E9EF-BA29-4A43-8D69-A2BED18FE73C&displaylang=ja

> Log4Jのログはきちんと出ておりました。最初、取り扱いたいテーブルを
> dbo スキーマに置かなければならない、というあたりから了解できておらず、
> dboスキーマ以外にテーブルがある状態だと、S2JDBC-Genは何もせずに
> (何もログを吐かずに)処理を終える形になるので、そのあたりでしばらく
> 立ち往生していたということだったのです。

Gen-EntityタスクのschemaName属性にスキーマ名を指定すれば
dboでなくとも大丈夫だと思います。
SQL Server 2005で試した限りは大丈夫でした。

次のリリースでは、テーブルの情報が1件も取得できない
場合はエラーを投げるようにしてわかりやすくします。

-- 
Toshihiro Nakamura



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