[seasar-dotnet:2183] Re: [DBFlute]OutsideSqlにおける固定の区分値について

kubo [E-MAIL ADDRESS DELETED]
2012年 8月 13日 (月) 18:15:43 JST


jfluteです。

> 今度はsql2entityタスク実行時に失敗するようになってしまいました。
わぁ、ごめんなさい。
盆ミスしてしまいましたね(メソッド呼び出しで失敗!)。

http://dbflute.net.sandbox.seasar.org/download/dbflute/dbflute-0.8.9.46.zip

でお試しください。
これでうまくいけばそのままそのモジュールをリリースしようかと。

2012/8/13 taknb2nch <taknb2nch @ gmail.com>:
> jflute さん
>
> taknb2nchです。
> お盆中にもかかわらずありがとうございます。
>
>
> 早速試してみました・・・が、
>
> 今度はsql2entityタスク実行時に失敗するようになってしまいました。
>
> 今回対応していただいている「固定の区分値」のみの場合は大丈夫なのですが、
> 「暗黙の区分値」が利用されている場合タスクが失敗するようです。(両方混在の場合もNG)
> (テーブル区分値は利用していないので分かりません)
>
>
> ちなみにNumber型区分値の場合のint.ParseはOKです。
>
>
> 以下、sql2entityタスク実行時のログになります。
>
> 2012-08-13 17:22:35,056 [main] INFO  (Database#info():2311) - public
> void parseParameterBean() {
> 2012-08-13 17:22:35,056 [main] INFO  (Database#info():2311) -
> parse('GetHogeListPmb');
> 2012-08-13 17:22:35,076 [main] ERROR
> (DfDBFluteTaskUtil#logException():161) - Look! Read the message below.
> /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
> Failed to execute DBFlute Task 'Sql2Entity'.
>
> [Advice]
> Check the exception messages and the stack traces.
>
> [Database Product]
> Microsoft SQL Server 9.00.3068
>
> [JDBC Driver]
> Microsoft SQL Server JDBC Driver 2.0 2.0.1803.100 for JDBC 4.0
> * * * * * * * * * */
> java.lang.IllegalStateException: Exception thrown by
> generator.parse(): control=om/ControlSql2EntityCSharp.vm
>         at org.seasar.dbflute.task.bs.DfAbstractTexenTask.fireVelocityProcess(DfAbstractTexenTask.java:401)
>         at org.seasar.dbflute.task.DfSql2EntityTask.doExecute(DfSql2EntityTask.java:148)
>         at org.seasar.dbflute.task.bs.DfAbstractTexenTask.execute(DfAbstractTexenTask.java:124)
>         at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
>         at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
>         at org.apache.tools.ant.Task.perform(Task.java:348)
>         at org.apache.tools.ant.Target.execute(Target.java:357)
>         at org.apache.tools.ant.Target.performTasks(Target.java:385)
>         at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
>         at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
>         at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
>         at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
>         at org.apache.tools.ant.Main.runBuild(Main.java:698)
>         at org.apache.tools.ant.Main.startAnt(Main.java:199)
>         at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
>         at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
> Caused by: org.seasar.dbflute.exception.DfTemplateParsingException:
> Look! Read the message below.
> /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
> Failed to parse the input template.
>
> [Input Template]
> om/csharp/bsbhv/pmbean/BsParameterBean.vmnet (UTF-8)
> * * * * * * * * * */
>         at org.seasar.dbflute.friends.velocity.DfFlutistGenerator.throwTemplateParsingException(DfFlutistGenerator.java:264)
>         at org.seasar.dbflute.friends.velocity.DfFlutistGenerator.parse(DfFlutistGenerator.java:246)
>         at org.seasar.dbflute.friends.velocity.DfFlutistGenerator.parse(DfFlutistGenerator.java:164)
>         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:597)
>         at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:260)
>         at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:207)
>         at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:250)
>         at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:94)
>         at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:344)
>         at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:153)
>         at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:94)
>         at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:109)
>         at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:271)
>         at org.apache.velocity.Template.merge(Template.java:296)
>         at org.seasar.dbflute.friends.velocity.DfFlutistGenerator.parse(DfFlutistGenerator.java:297)
>         at org.seasar.dbflute.task.bs.DfAbstractTexenTask.fireVelocityProcess(DfAbstractTexenTask.java:393)
>         ... 18 more
> Caused by: java.lang.StackOverflowError
>         at org.seasar.dbflute.logic.sql2entity.pmbean.DfPmbGenerationHandler.assertArgumentPmbMetaDataClassName(DfPmbGenerationHandler.java:614)
>         at org.seasar.dbflute.logic.sql2entity.pmbean.DfPmbGenerationHandler.getPropertyTypeRemovedCSharpNullable(DfPmbGenerationHandler.java:199)
>         at org.seasar.dbflute.logic.sql2entity.pmbean.DfPmbGenerationHandler.getPropertyTypeRemovedCSharpNullable(DfPmbGenerationHandler.java:201)
>         at org.seasar.dbflute.logic.sql2entity.pmbean.DfPmbGenerationHandler.getPropertyTypeRemovedCSharpNullable(DfPmbGenerationHandler.java:201)
>         at org.seasar.dbflute.logic.sql2entity.pmbean.DfPmbGenerationHandler.getPropertyTypeRemovedCSharpNullable(DfPmbGenerationHandler.java:201)
>         at org.seasar.dbflute.logic.sql2entity.pmbean.DfPmbGenerationHandler.getPropertyTypeRemovedCSharpNullable(DfPmbGenerationHandler.java:201)
>         at org.seasar.dbflute.logic.sql2entity.pmbean.DfPmbGenerationHandler.getPropertyTypeRemovedCSharpNullable(DfPmbGenerationHandler.java:201)
> ・・・以下同じ内容が1000行ほど続いてます。
>
>
>
> よろしくお願いいたします。
>
>
> 2012年8月12日 0:51 kubo <dbflute @ gmail.com>:
>> jfluteです。
>>
>>> Numberで定義した区分値に対して前回のRC1ではint.Parseが付いていたのですが、
>>> 今回は付かなくなってしまいビルドエラーになります。
>> 再度修正しましたー。
>> ちなみに、List型は未対応になります。
>>
>> 2012/8/12 taknb2nch <taknb2nch @ gmail.com>:
>>> jflute さん
>>>
>>> taknb2nchです。
>>>
>>>
>>> 早速ありがとうございます!
>>>
>>> 今回は出力されたparametaer-beanが下記のようになります。
>>>
>>> // Attribute
>>> protected int? _hogeFlagTrue = CDef.Flag.True.Code;
>>> protected string _hogeTypeA = CDef.HogeType.A.Code;
>>>
>>> Stringで定義した区分値は問題無さそうですが、
>>> Numberで定義した区分値に対して前回のRC1ではint.Parseが付いていたのですが、
>>> 今回は付かなくなってしまいビルドエラーになります。
>>>
>>> その部分だけ手で直して実行してみましたが、
>>> 実際のSQLでは期待する値もセットされていて問題ありません。(当たり前ですね)
>>>
>>>
>>> よろしくお願いいたします。
>>>
>>>
>>> 2012年8月11日 23:09 kubo <dbflute @ gmail.com>:
>>>> jfluteです。
>>>>
>>>>> 早速試してみましたが、
>>>>> BsParameterBean.vmnetの64行目~の${classificationElement.name}が
>>>>> 下記のようにそのまま出力されているようでエラーになります。
>>>>
>>>> 申し訳ありません、でかける寸前で安易に「これでできるんじゃ!?」と
>>>> やって見事にできなかったです...RC1を上書きしているので、
>>>> お試して頂けますでしょうか?
>>>>
>>>> 2012/8/11 taknb2nch <taknb2nch @ gmail.com>:
>>>>> jflute さん
>>>>>
>>>>> taknb2nchです。
>>>>> ありがとうございます!!
>>>>>
>>>>> 気になるところは他にもあったりするのですが、
>>>>> とりあえずこれをお願いしてみました。
>>>>>
>>>>>
>>>>> 早速試してみましたが、
>>>>> BsParameterBean.vmnetの64行目~の${classificationElement.name}が
>>>>> 下記のようにそのまま出力されているようでエラーになります。
>>>>>
>>>>> protected int? _hogeFlagTrue =
>>>>> int.Parse(CDef.Flag.${classificationElement.name}.Code);
>>>>> protected string _hogeTypeA = CDef.HogeType.${classificationElement.name}.Code;
>>>>>
>>>>>
>>>>> よろしくお願いいたします。
>>>>>
>>>>> 2012年8月11日 10:20 kubo <dbflute @ gmail.com>:
>>>>>> 久保(jflute)です。
>>>>>>
>>>>>> taknb2nchさん、おはようございます。
>>>>>> いつも .NET 版は保留保留とさせてもらってて
>>>>>> 申し訳ないので、ちょっとやってみました。
>>>>>>
>>>>>> http://dbflute.net.sandbox.seasar.org/download/dbflute/dbflute-0.8.9.46-RC1.zip
>>>>>>
>>>>>> でも、ちょっと環境的にWindowsでの確認がすぐにできないので、
>>>>>> テンプレートを書き換えただけで試していませんので、
>>>>>> お手数ですがちょっと試して頂けないでしょう?
>>>>>> (BsParameterBean.vmnetが変わっています)
>>>>>>
>>>>>>
>>>>>> 2012/8/10 taknb2nch <taknb2nch @ gmail.com>:
>>>>>>> taknb2nchです。
>>>>>>>
>>>>>>> お世話になります。
>>>>>>>
>>>>>>>
>>>>>>> Java版では実装されている
>>>>>>> 「OutsideSqlにおけるParameterBeanのオプションの固定の区分値」
>>>>>>> は、.NET版では実装されていないのでしょうか。
>>>>>>>
>>>>>>> [区分値定義]
>>>>>>> ; Flag = list:{
>>>>>>>     ; map:{topComment=フラグを示す;}
>>>>>>>     ; map:{code=1; name=True; alias=はい ; comment=有効を示す}
>>>>>>>     ; map:{code=0; name=False; alias=いいえ ; comment=無効を示す}
>>>>>>> }
>>>>>>>
>>>>>>> [SQLファイル定義部分]
>>>>>>> -- !df:pmb!
>>>>>>> -- !!string hogeFlagTrue:cls(Flag)!!
>>>>>>>
>>>>>>> にすると生成されるParameterBeanで正しく区分値のプロパティとして生成されるのですが、
>>>>>>>
>>>>>>> [SQLファイル定義部分]
>>>>>>> -- !df:pmb!
>>>>>>> -- !!string hogeFlagTrue:cls(Flag.True)!!
>>>>>>>
>>>>>>> とすると生成されるParameterBeanでは単純にstring型のプロパティとして生成されてしまいます。
>>>>>>> またSQL実行時にも反映はされません。(単純なプロパティなので当然でしょうか)
>>>>>>>
>>>>>>> <実行環境>
>>>>>>> DBFlute.NET 0.8.9.44
>>>>>>> Seasar.NET 1.3.17.0
>>>>>>> .NET Framework 2.0
>>>>>>> SQLServer 2005
>>>>>>> Windows XP Pro sp2 32bit
>>>>>>>
>>>>>>>
>>>>>>> Java版ではこの機能を便利に利用させていただいているので、
>>>>>>> 出来れば.NET版でも利用できればと思います。
>>>>>>>
>>>>>>> あくまで要望ですので緊急性は全くありません。
>>>>>>> 実装不可能でもいたって問題はありません。
>>>>>>>
>>>>>>>
>>>>>>> よろしくお願いいたします。
>>>>>>> _______________________________________________
>>>>>>> seasar-dotnet mailing list
>>>>>>> seasar-dotnet @ ml.seasar.org
>>>>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>>> _______________________________________________
>>>>>> seasar-dotnet mailing list
>>>>>> seasar-dotnet @ ml.seasar.org
>>>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>> _______________________________________________
>>>>> seasar-dotnet mailing list
>>>>> seasar-dotnet @ ml.seasar.org
>>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>> _______________________________________________
>>>> seasar-dotnet mailing list
>>>> seasar-dotnet @ ml.seasar.org
>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>> _______________________________________________
>>> seasar-dotnet mailing list
>>> seasar-dotnet @ ml.seasar.org
>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>> _______________________________________________
>> seasar-dotnet mailing list
>> seasar-dotnet @ ml.seasar.org
>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
> _______________________________________________
> seasar-dotnet mailing list
> seasar-dotnet @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet


seasar-dotnet メーリングリストの案内