[Seasar-user:1366] Re: MySQLのBoolカラム

Hideaki Maekawa maekawa
2004年 12月 16日 (木) 11:47:37 JST


何度もすみません前川です。

MySQLのBOOLでエラーが発生する件ですが、insertではなくgetの方で
した。

public class T1 {
    public static final String TABLE = "t1";
    
    private Boolean bflg;
    public Boolean getBflg() {
        return bflg;
    }
    public void setBflg(Boolean bflg) {
        this.bflg = bflg;
    }
}

public interface T1Dao {
    public static final Class BEAN = T1.class;
    public void insert(T1 t1);
    public T1[] getT1s();
}

public class Test {
    public static void main(String[] args) {
        S2Container container = S2ContainerFactory.create("T1.dicon");
        T1Dao dao = (T1Dao) container.getComponent(T1Dao.class);

        T1 t = new T1();
        t.setBflg(Boolean.TRUE);
        dao.insert(t);

        T1[] l = dao.getT1s();
        System.out.println(l[0]);
    }
}

これでエラーが発生します。

[2004-12-16 11:38:53,895] [main] DEBUG (Logger.java:106) - 物理的なコネクションを取得しました
[2004-12-16 11:38:53,905] [main] DEBUG (Logger.java:106) - 論理的なコネクションを取得しました
[2004-12-16 11:38:54,075] [main] DEBUG (Logger.java:106) - 論理的なコネクションを閉じました
[2004-12-16 11:38:54,155] [main] DEBUG (Logger.java:106) - 論理的なコネクションを取得しました
[2004-12-16 11:38:54,155] [main] DEBUG (Logger.java:47) - INSERT INTO t1 (bflg) VALUES('true')
[2004-12-16 11:38:54,196] [main] DEBUG (Logger.java:106) - 論理的なコネクションを閉じました
[2004-12-16 11:38:54,216] [main] DEBUG (Logger.java:47) - SELECT t1.bflg FROM t1
[2004-12-16 11:38:54,216] [main] DEBUG (Logger.java:106) - 論理的なコネクションを取得しました
[2004-12-16 11:38:54,236] [main] DEBUG (Logger.java:106) - 論理的なコネクションを閉じました
org.seasar.framework.beans.IllegalPropertyRuntimeException: [ESSR0059]クラス(seasar.T1)のプロパティ(bflg)の設定に失敗しました。理由はjava.lang.IllegalArgumentException: argument type mismatch
	at org.seasar.framework.beans.impl.PropertyDescImpl.setValue(PropertyDescImpl.java:91)
	at org.seasar.dao.impl.AbstractBeanMetaDataResultSetHandler.createRow(AbstractBeanMetaDataResultSetHandler.java:43)
	at org.seasar.dao.impl.BeanListMetaDataResultSetHandler.handle(BeanListMetaDataResultSetHandler.java:33)
	at org.seasar.dao.impl.BeanArrayMetaDataResultSetHandler.handle(BeanArrayMetaDataResultSetHandler.java:21)
	at org.seasar.extension.jdbc.impl.BasicSelectHandler.execute(BasicSelectHandler.java:138)
	at org.seasar.extension.jdbc.impl.BasicSelectHandler.execute(BasicSelectHandler.java:110)
	at org.seasar.extension.jdbc.impl.BasicSelectHandler.execute(BasicSelectHandler.java:97)
	at org.seasar.dao.impl.SelectDynamicCommand.execute(SelectDynamicCommand.java:37)
	at org.seasar.dao.interceptors.S2DaoInterceptor.invoke(S2DaoInterceptor.java:37)
	at org.seasar.framework.aop.impl.MethodInvocationImpl.proceed(MethodInvocationImpl.java:82)
	at org.seasar.framework.aop.proxy.AopProxy.intercept(AopProxy.java:151)
	at seasar.T1Dao$$EnhancerByCGLIB$$d83b533a.getT1s(<generated>)
	at seasar.Test.main(Test.java:40)
Caused by: java.lang.IllegalArgumentException: argument type mismatch
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:324)
	at org.seasar.framework.util.MethodUtil.invoke(MethodUtil.java:27)
	at org.seasar.framework.beans.impl.PropertyDescImpl.setValue(PropertyDescImpl.java:88)
	... 12 more
Exception in thread "main" 

ちなみにPostgresql 8.0-beta2-dev3(Windows 2000)では大丈夫で
した。

--
株式会社フリーダム システム開発部
前川英昭 <[E-MAIL ADDRESS DELETED]>
DFEC F450 263C 26D2 C3D1 3494 4D88 DA18 4EA5 1CD4





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