WebObjects nsDictionary.valueForKey("5スレ");
■ このスレッドは過去ログ倉庫に格納されています
0030メリーアン
03/02/09 10:06ID:WgfWLREuとりあえず、使用しているRDBMSやWebObjectsのバージョンが判らないと、何とも言えないな…
EO_PK_TABLEというのがスキーマ内に生成されてないかな?それがあれば
主キーの生成はEOFがEO_PK_TABLEを使って生成していることになるから、
当該テーブルの主キー最大値と、EO_PK_TABLEのナカミをみて当該テーブルの
最大値が設定されているから、その値を比較して前者が後者を下回っていないか
どうかを確認する。なっていたらUPDATEするなりする、と。
EO_PK_TABLEが使われていない、つまりOracleのシーケンスオブジェクトや
PostgreSQLの_seq(シーケンステーブル)を使って主キーを生成している場合は、
EOModelor上で当該Entityを選択してGenerateSQLウィンドウを開き、
Drop PrimaryKey Support だけをチェックして実行後、もう一回
Create Primary Key Supportを実行し、シーケンスオブジェクトだけを再度生成する。
たぶん、当該テーブルに対し、WebObjectsからではなくて、SQLで直接テーブルを
Insertしたり、MS-accessなどでいじったりしたんで、シーケンスオブジェクト
(EO_PK_TABLE含む)が管理する値と違う値になっていた、というのが
原因じゃぁないかと。シーケンスオブジェクトの値そのものは、
SQLを叩いてユニークな値(主キー)を生成するだけだから、
テーブルとリンクしているようなイメージを持ってはいけない。
たぶん、シーケンスオブジェクトを再設定することで解決すると思います。
がんがれ。
■ このスレッドは過去ログ倉庫に格納されています