S2Daoの「Primary keyが見つかりません」エラー

[EDAO0009]のエラーが発生する理由として、

  • A)DBのテーブルにpkが設定されていない場合
    • 制約をきちんと指定すればOK。
  • B)PKのカラム名が間違っている (DB側 or JavaBeans側)
  • C)テーブル名が間違っている
    • 後で。

のどれかが考えられる。
つーか、(A)(B)はわかりやすいけど、(C)もこのエラーコード!?
むーん。

今回は

public class FooBar {
    private String foo;
    private String bar;
    // getter/setter省略
}

というDtoに対して、foo_barテーブルを対応させようとして発生。

カラム名だと、アンダーバーをきちんと無視してくれたりするのに、どうもテーブル名は明示的に指定しないとだめらしい。

TABLEアノテーションで

     public static final String TABLE = "foo_bar";

と書いたらうまく通った。

…仕様ですか?