環境
PostgreSQL 8.0 Windows
JDBC 8.0 321
S2Dao 1.0.28
PostgreSQLのIDの自動生成(serial)の列に対して、
public static final String id_ID = "identity";
を使用すると、insertで以下の例外が発生します。
但し、DBの更新は行われ、レコードも追加されます。
回避方法
identityの代わりに
public static final String NO_PERSISTENT_PROPS = "id"
を使用する。
例外:
org.seasar.framework.exception.EmptyRuntimeException:
[ESSR0007]sqlはnullあるいは空であってはいけません
at
org.seasar.extension.jdbc.impl.BasicHandler.prepareStatement(BasicHandler.java:78)
at
org.seasar.extension.jdbc.impl.BasicSelectHandler.prepareStatement(BasicSelectHandler.java:133)
at
org.seasar.extension.jdbc.impl.BasicSelectHandler.execute(BasicSelectHandler.java:120)
at
org.seasar.extension.jdbc.impl.BasicSelectHandler.execute(BasicSelectHandler.java:107)
at
org.seasar.extension.jdbc.impl.BasicSelectHandler.execute(BasicSelectHandler.java:97)
at
org.seasar.dao.id.AbstractIdentifierGenerator.executeSql(AbstractIdentifierGenerator.java:42)
at
org.seasar.dao.id.IdentityIdentifierGenerator.setIdentifier(IdentityIdentifierGenerator.java:26)
at
org.seasar.dao.impl.InsertAutoHandler.postUpdateBean(InsertAutoHandler.java:39)
at
org.seasar.dao.impl.AbstractAutoHandler.execute(AbstractAutoHandler.java:132)
at
org.seasar.dao.impl.AbstractAutoHandler.execute(AbstractAutoHandler.java:107)
at
org.seasar.dao.impl.AbstractAutoStaticCommand.execute(AbstractAutoStaticCommand.java:34)
at
org.seasar.dao.interceptors.S2DaoInterceptor.invoke(S2DaoInterceptor.java:36)
at
seasar.TestDao$$EnhancedByS2AOP$$281d4b$$MethodInvocation$$insert1.proceed(MethodInvocationClassGenerator.java)
at
seasar.TestDao$$EnhancedByS2AOP$$281d4b.insert(TestDao$$EnhancedByS2AOP$$281d4b.java)
at seasar.TestDaoTest.testOperation(TestDaoTest.java:42)
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 junit.framework.TestCase.runTest(TestCase.java:154)
at
org.seasar.extension.unit.S2TestCase.runTestTx(S2TestCase.java:1196)
at
org.seasar.extension.unit.S2TestCase.runBare(S2TestCase.java:914)
at
junit.framework.TestResult$1.protect(TestResult.java:106)
at
junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
PostgreSQL 8.0 Windows
JDBC 8.0 321
S2Dao 1.0.28
PostgreSQLのIDの自動生成(serial)の列に対して、
public static final String id_ID = "identity";
を使用すると、insertで以下の例外が発生します。
但し、DBの更新は行われ、レコードも追加されます。
回避方法
identityの代わりに
public static final String NO_PERSISTENT_PROPS = "id"
を使用する。
例外:
org.seasar.framework.exception.EmptyRuntimeException:
[ESSR0007]sqlはnullあるいは空であってはいけません
at
org.seasar.extension.jdbc.impl.BasicHandler.prepareStatement(BasicHandler.java:78)
at
org.seasar.extension.jdbc.impl.BasicSelectHandler.prepareStatement(BasicSelectHandler.java:133)
at
org.seasar.extension.jdbc.impl.BasicSelectHandler.execute(BasicSelectHandler.java:120)
at
org.seasar.extension.jdbc.impl.BasicSelectHandler.execute(BasicSelectHandler.java:107)
at
org.seasar.extension.jdbc.impl.BasicSelectHandler.execute(BasicSelectHandler.java:97)
at
org.seasar.dao.id.AbstractIdentifierGenerator.executeSql(AbstractIdentifierGenerator.java:42)
at
org.seasar.dao.id.IdentityIdentifierGenerator.setIdentifier(IdentityIdentifierGenerator.java:26)
at
org.seasar.dao.impl.InsertAutoHandler.postUpdateBean(InsertAutoHandler.java:39)
at
org.seasar.dao.impl.AbstractAutoHandler.execute(AbstractAutoHandler.java:132)
at
org.seasar.dao.impl.AbstractAutoHandler.execute(AbstractAutoHandler.java:107)
at
org.seasar.dao.impl.AbstractAutoStaticCommand.execute(AbstractAutoStaticCommand.java:34)
at
org.seasar.dao.interceptors.S2DaoInterceptor.invoke(S2DaoInterceptor.java:36)
at
seasar.TestDao$$EnhancedByS2AOP$$281d4b$$MethodInvocation$$insert1.proceed(MethodInvocationClassGenerator.java)
at
seasar.TestDao$$EnhancedByS2AOP$$281d4b.insert(TestDao$$EnhancedByS2AOP$$281d4b.java)
at seasar.TestDaoTest.testOperation(TestDaoTest.java:42)
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 junit.framework.TestCase.runTest(TestCase.java:154)
at
org.seasar.extension.unit.S2TestCase.runTestTx(S2TestCase.java:1196)
at
org.seasar.extension.unit.S2TestCase.runBare(S2TestCase.java:914)
at
junit.framework.TestResult$1.protect(TestResult.java:106)
at
junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
コンソール:
DEBUG 2005-09-29 17:59:11,912 [main] 物理的なコネクショ
ンを取得しました
DEBUG 2005-09-29 17:59:11,912 [main] 論理的なコネクショ
ンを取得しました
DEBUG 2005-09-29 17:59:12,162 [main] 論理的なコネクショ
ンを閉じました
DEBUG 2005-09-29 17:59:12,232 [main] 論理的なコネクショ
ンを取得しました
DEBUG 2005-09-29 17:59:12,232 [main] INSERT INTO test
(bangou) VALUES (1000)
DEBUG 2005-09-29 17:59:12,252 [main]
DEBUG 2005-09-29 17:59:12,322 [main] 物理的なコネクショ
ンを取得しました
DEBUG 2005-09-29 17:59:12,322 [main] 論理的なコネクショ
ンを取得しました
DEBUG 2005-09-29 17:59:12,322 [main] 論理的なコネクショ
ンを閉じました
DEBUG 2005-09-29 17:59:12,322 [main] 論理的なコネクショ
ンを閉じました
DEBUG 2005-09-29 17:59:12,322 [main] 物理的なコネクショ
ンを閉じました
DEBUG 2005-09-29 17:59:12,342 [main] 物理的なコネクショ
ンを閉じました