[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 ではなく、"" をセットしてしのいでいますが、
対応していただけると助かります。