1

私はactivejdbc 1.4.9を使用していましたが、次のサンプルコードは問題なく実行されていました

Client client = new Client();
client.save(); 
Assert.assertNotNull(client.getId());

1.4.12 にアップグレードしてから、save が新しいレコードを挿入するときに、client.getId() は常に null を返します。つまり、id が更新されていません。

これも誰か気づいた?新しく作成された ID を取得するために、このバージョンを使用して何か違うことをする必要がありますか?

4

1 に答える 1

1

バージョン1.4.12では確認できません。たとえば、https ://github.com/javalite/simple-example/blob/new_id という例を書きました。Main.javaのコードを確認してください。ご覧のとおり、コードは作成したものと同じですが、21 行目で、新しい ID の実際の値が出力されます。

問題を再現する簡単な例をまとめることができれば、見ていきます。

編集:

以下のコメントで詳細情報を提供したので、問題は ID を空の文字列 "" に設定することです。ID はnullもうないため、このメソッドsave()updateではなくを使用しinsertます。その後、更新は ID の値を使用して「既存の」レコードを更新し、結果として何もしません。ID 値を変更することは可能ですが、お勧めしません。詳細については、http: //javalite.io/surrogate_primary_keysを参照してください。

于 2016-09-26T20:06:44.267 に答える