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

taknb2nch [E-MAIL ADDRESS DELETED]
2012年 8月 14日 (火) 15:59:15 JST


jflute さん

taknb2nchです。

ありがとうございます。
正式版で上書きしました。

2012年8月13日 20:36 kubo <dbflute @ gmail.com>:
> 久保(jflute)です。
>
> taknb2nchさん、ありがとうございます!
> 先ほどリリースしました。
>
> すいません、そのまま試してもらったものを正式リリースと
> 言いましたが、ちょっとこちらの都合で再デプロイし直しました。
> ただ、.NETとしての機能は何も変わっていませんが、
> 若干気持ち悪いので正式版で上書きして頂ければと。
>
> 2012/8/13 taknb2nch <taknb2nch @ gmail.com>:
>> jfluteさん
>>
>> taknb2nchです。
>>
>> 早速試してみました!
>>
>> ・暗黙の区分値のみの場合
>> ・固定の区分値のみの場合
>> ・暗黙の区分値と固定の区分値が混在の場合
>> ・Number型の区分値の場合
>> ・String型の区分値の場合
>> ・Number型の区分値とString型が混在の場合
>>
>> で生成されたソースコード、実行されるSQLも正しいことを確認しました。
>> (見落としがあったらすいません)
>>
>>> ちなみに、List型は未対応になります。
>> 今のところ必要ないのですが、そのうちに欲しくなるかもしれませんね。
>>
>>
>> ありがとうございました!!!
>>
>>
>>
>> 2012年8月13日 18:15 kubo <dbflute @ gmail.com>:
>>> 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 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 メーリングリストの案内