[Seasar-user:1620] Re: S2DaoModelGen と  PostgreSql 8.0

加藤太朗 kato
2005年 3月 14日 (月) 20:00:46 JST


志村さんこんにちわ。レポート感謝です。

すみません。さいきん忙しくてMLもROMってさえもいませんでして、
今さっき、ちょっとした理由でS2DaoModelGenでググったらトップに
出てきてビックリしました。

私も今の案件がPostgreSQLなので、試すことがあったのですが、
しょっぱなから動かずに、でも追う時間もなくS2DaoMakerでやることを
決めてしまいました。

最後に例外が出るパターンといえば、変数名や型のマッピングがうまくいってな
いときがよくあります。左がツリービューで右がリストビューの画面で、
各テーブルを見ると、項目名がJava識別子に自動変換できない場合や、型が
JDBC型から類推できない場合などにnullの状態になるので次の画面に進もうとし
てエラーになったりするというものです。

答えになってなくて、すみません。

----------

今ちらっと見たのですが、SQLServerの方は多分スキーマがないかデフォルト
パッケージにしてschemaToPackageNameがnullを返しているんじゃないかなーと
思いました。

PostgreSQLの方は、たぶん、ゲッターの戻り値とセッターの引数の型が違う
メソッドが用意されていて、BeanUtilsで失敗しているんじゃないかなぁーと
思います。JDBCメタ情報から動的におこしたDynaBeanの型でサポート外のものが
あるのかもしれません。

今は多忙でして時間がとれずご迷惑かけます。すみません。m(_ _;)m


--------------------------------------------------------->>
Gluegent,Inc. T.Kato
http://package.gluegent.com/~kato/signature.xml
---->> generate products and services with high added value


> 
> 加藤さま
> 
> 有用なTOOLの提供ありがとうございます。PostgreSQL 8.0の場合下記ERRORとなります。
> 
> 急がないのですが、原因が判れば教えて頂けますか?
> 
> なお SQL SERVER EXPRESS2005では、上手く出来ているようですが、最後に下記の
> 
> ERROR Messageが出力されます。
> 
> 志村
> 
> MSSQL ERROR
> 
> java.lang.NullPointerException
>  at org.seaser.dao.ext.modelgen.generator.AllDiconXmlWriter.writeFromTable(AllDiconXmlWriter.java:33)
>  at org.seaser.dao.ext.modelgen.generator.ModelSourceGenerator.fileOperation(ModelSourceGenerator.java:159)
>  at org.seaser.dao.ext.modelgen.generator.ModelSourceGenerator.execute(ModelSourceGenerator.java:136)
>  at org.seaser.dao.ext.modelgen.generator.ModelSourceGenerator.run(ModelSourceGenerator.java:47)
>  at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
>  at org.seaser.dao.ext.modelgen.ModelGen.generateS2DaoModelFiles(ModelGen.java:322)
>  at org.seaser.dao.ext.modelgen.ModelGen.access$2(ModelGen.java:318)
>  at org.seaser.dao.ext.modelgen.ModelGen$3.run(ModelGen.java:280)
>  at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
>  at org.seaser.dao.ext.modelgen.ModelGen.pageNext(ModelGen.java:264)
>  at org.seaser.dao.ext.modelgen.CompositeTypeMapping.buttonNextWidgetSelected(CompositeTypeMapping.java:428)
>  at org.seaser.dao.ext.modelgen.CompositeTypeMapping$6.widgetSelected(CompositeTypeMapping.java:181)
>  at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:89)
>  at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
>  at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796)
>  at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2772)
>  at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2431)
>  at org.seaser.dao.ext.modelgen.ModelGen.exceptionHandlingShowGUI(ModelGen.java:201)
>  at org.seaser.dao.ext.modelgen.ModelGen.main(ModelGen.java:230)
> 
> 
> POSTGRES ERROR
> 
> 2005/03/06 5:16:44 org.apache.commons.beanutils.PropertyUtilsBean invokeMethod
> 致命的: Method invocation failed.
> java.lang.IllegalArgumentException: argument type mismatch
>  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>  at java.lang.reflect.Method.invoke(Unknown Source)
>  at org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:1773)
>  at org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:1759)
>  at org.apache.commons.beanutils.PropertyUtilsBean.copyProperties(PropertyUtilsBean.java:197)
>  at org.apache.commons.beanutils.PropertyUtils.copyProperties(PropertyUtils.java:140)
>  at com.gluegent.commons.sql.dom.Column.initialize(Column.java:39)
>  at com.gluegent.commons.sql.dom.Column.<init>(Column.java:35)
>  at com.gluegent.commons.sql.dom.MetaInfo.collectColumns(MetaInfo.java:200)
>  at com.gluegent.commons.sql.dom.MetaInfo.collectTablesOrViews(MetaInfo.java:180)
>  at com.gluegent.commons.sql.dom.MetaInfo.collectTablesAndViews(MetaInfo.java:190)
>  at com.gluegent.commons.sql.dom.MetaInfo.collectSchemas(MetaInfo.java:107)
>  at com.gluegent.commons.sql.dom.MetaInfo.initialize(MetaInfo.java:90)
>  at com.gluegent.commons.sql.dom.MetaInfo.<init>(MetaInfo.java:68)
>  at org.seaser.dao.ext.modelgen.CompositeEnvironment.pageLeave(CompositeEnvironment.java:571)
>  at org.seaser.dao.ext.modelgen.ModelGen$3.run(ModelGen.java:268)
>  at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
>  at org.seaser.dao.ext.modelgen.ModelGen.pageNext(ModelGen.java:264)
>  at org.seaser.dao.ext.modelgen.CompositeEnvironment.buttonNextWidgetSelected(CompositeEnvironment.java:546)
>  at org.seaser.dao.ext.modelgen.CompositeEnvironment$9.widgetSelected(CompositeEnvironment.java:412)
>  at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:89)
>  at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
>  at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796)
>  at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2772)
>  at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2431)
>  at org.seaser.dao.ext.modelgen.ModelGen.exceptionHandlingShowGUI(ModelGen.java:201)
>  at org.seaser.dao.ext.modelgen.ModelGen.main(ModelGen.java:230)
> java.lang.IllegalArgumentException: Cannot invoke com.gluegent.commons.sql.dom.ColumnSetter.setData_type - argument type mismatch
>  at org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:1778)
>  at org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:1759)
>  at org.apache.commons.beanutils.PropertyUtilsBean.copyProperties(PropertyUtilsBean.java:197)
>  at org.apache.commons.beanutils.PropertyUtils.copyProperties(PropertyUtils.java:140)
>  at com.gluegent.commons.sql.dom.Column.initialize(Column.java:39)
>  at com.gluegent.commons.sql.dom.Column.<init>(Column.java:35)
>  at com.gluegent.commons.sql.dom.MetaInfo.collectColumns(MetaInfo.java:200)
>  at com.gluegent.commons.sql.dom.MetaInfo.collectTablesOrViews(MetaInfo.java:180)
>  at com.gluegent.commons.sql.dom.MetaInfo.collectTablesAndViews(MetaInfo.java:190)
>  at com.gluegent.commons.sql.dom.MetaInfo.collectSchemas(MetaInfo.java:107)
>  at com.gluegent.commons.sql.dom.MetaInfo.initialize(MetaInfo.java:90)
>  at com.gluegent.commons.sql.dom.MetaInfo.<init>(MetaInfo.java:68)
>  at org.seaser.dao.ext.modelgen.CompositeEnvironment.pageLeave(CompositeEnvironment.java:571)
>  at org.seaser.dao.ext.modelgen.ModelGen$3.run(ModelGen.java:268)
>  at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
>  at org.seaser.dao.ext.modelgen.ModelGen.pageNext(ModelGen.java:264)
>  at org.seaser.dao.ext.modelgen.CompositeEnvironment.buttonNextWidgetSelected(CompositeEnvironment.java:546)
>  at org.seaser.dao.ext.modelgen.CompositeEnvironment$9.widgetSelected(CompositeEnvironment.java:412)
>  at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:89)
>  at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
>  at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796)
>  at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2772)
>  at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2431)
>  at org.seaser.dao.ext.modelgen.ModelGen.exceptionHandlingShowGUI(ModelGen.java:201)
>  at org.seaser.dao.ext.modelgen.ModelGen.main(ModelGen.java:230)





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