Uploaded image for project: 'S2Dao'
  1. S2Dao
  2. DAO-29

[Seasar-user:4164] PKしかセットしない場合に例外が出る

XMLWordPrintable

    • Type: Icon: Improvement Improvement
    • Resolution: Fixed
    • Priority: Icon: Major Major
    • 1.0.36
    • Affects Version/s: 1.0.35
    • Component/s: s2dao
    • None

      [seaser-user:3915] と似ているのですが、現在、次のような現象が発生していて、
      ちょっと困っています。
      確認したデータベースは、Oracle10g です。

      create table test (
       userID numeric(3) Not Null,
       userName varchar2(100)
      );
      Alter table test add Primary Key (userID);
      

      のように、主キー1つと、null可のカラム1つを持つテーブルを作成します。
      対応するBean は、

      public class Test {
             public static final String TABLE = "Test";
             private int userID = 0;
             private String userName = "";
      

      のようになっています(getter/setter は省略)。
      DAO は、

      public interface TestDao {
             public static final Class BEAN = Test.class;
             public void insert(Test aTest);
      }
      

      となっています。

      このとき、

             Test test = new Test();
             test.setUserID(1);
             test.setUserName("TestUser");
             testDao.insert(test);
      

      だと正常にInsert が成功しますが、

             Test test2 = new Test();
             test2.setUserID(2);
             test2.setUserName(null);
             testDao.insert(test2);
      

      とやった場合、つまり、not null のカラムに1つも値をセットしないと、

      org.seasar.framework.exception.SRuntimeException: [EDAO0014]not nullであるカラムがありません
             at org.seasar.dao.impl.InsertAutoDynamicCommand.createInsertPropertyTypes(InsertAutoDynamicCommand.java:119)
             at org.seasar.dao.impl.InsertAutoDynamicCommand.execute(InsertAutoDynamicCommand.java:52)
             at org.seasar.dao.interceptors.S2DaoInterceptor.invoke(S2DaoInterceptor.java:53)
      :
      :
      

      と例外が発生します。

      とりあえず、上記のような場合、null ではなく、"" をセットしてしのいでいますが、
      対応していただけると助かります。

            Assignee:
            manhole manhole
            Reporter:
            manhole manhole
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: