ch.6の日記: WebObjects日記 Enterprise Object 編
日記 by
ch.6
OpenBase が動かなくて中断していた WebObjects のお勉強。PostgreSQL が JDBC ドライバであっさり使えそうなので再開した。
最初の例題の Author プロジェクトで、おおむねちゃんと動くんだけど EOEditingContext.saveChanges() でプライマリキーに関して例外が発生してしまう。ぐぐってみると、
CREATE TABLE eo_pk_table (
name character(40),
pk integer
);
を実行しておくといいらしい(http://www.wikiroom.com/WebObjects/?2ch#content_1_9)。やってみるとちゃんと動く。どうやら WebObjects(というか EOModeler)は自分が知っている DB のドライバに対してはこれに相当することをやる SQL 文をちゃんと出してくれるのではないかと思う。
あと、WebObjects Builder のバグだと思うけど、Add Key... で、型を Mutable Array of ... にすると、Java ソースで型が (null) になってしまう。Xcode の Modeler を使えば解決するかも(未確認)。
-- 追記 --
Xcode でモデルをいじってみたけど、schema の生成で例外が発生してしまう。と思ってよく見ると、「 Next exception:SQL State:42P07 -- error code: 0 -- msg: ERROR: relation "author" already exists」なんて言っているので、author テーブルを削除しておくとうまく生成できた。が、EO Modeler でモデルを作った時に設定したはずの char(30) の Width 部分(「30」のことね)が無視されてしまう。これはどこに設定すればいいのかなぁ。Xcode でも SQL を生成するだけってのができれば目で見て確認できていいんだけど。
最初の例題の Author プロジェクトで、おおむねちゃんと動くんだけど EOEditingContext.saveChanges() でプライマリキーに関して例外が発生してしまう。ぐぐってみると、
CREATE TABLE eo_pk_table (
name character(40),
pk integer
);
を実行しておくといいらしい(http://www.wikiroom.com/WebObjects/?2ch#content_1_9)。やってみるとちゃんと動く。どうやら WebObjects(というか EOModeler)は自分が知っている DB のドライバに対してはこれに相当することをやる SQL 文をちゃんと出してくれるのではないかと思う。
あと、WebObjects Builder のバグだと思うけど、Add Key... で、型を Mutable Array of ... にすると、Java ソースで型が (null) になってしまう。Xcode の Modeler を使えば解決するかも(未確認)。
-- 追記 --
Xcode でモデルをいじってみたけど、schema の生成で例外が発生してしまう。と思ってよく見ると、「 Next exception:SQL State:42P07 -- error code: 0 -- msg: ERROR: relation "author" already exists」なんて言っているので、author テーブルを削除しておくとうまく生成できた。が、EO Modeler でモデルを作った時に設定したはずの char(30) の Width 部分(「30」のことね)が無視されてしまう。これはどこに設定すればいいのかなぁ。Xcode でも SQL を生成するだけってのができれば目で見て確認できていいんだけど。
WebObjects日記 Enterprise Object 編 More ログイン