[Seasar-user:4164] 「not null であるカラムがありません」について

松山 大樹 [E-MAIL ADDRESS DELETED]
2006年 7月 24日 (月) 15:42:12 JST


 松山です。

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

 以上、よろしくお願いします。








-- 
::: 株式会社WOWOWコミュニケーションズ http://www.wowcom.co.jp/
:::   ITシステム・インテグレートDiv.
:::  Web・ソリューション&システム開発Unit.
:::   松山 大樹 - [E-MAIL ADDRESS DELETED]





Seasar-user メーリングリストの案内