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

kubo [E-MAIL ADDRESS DELETED]
2012年 8月 13日 (月) 20:36:00 JST


久保(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 メーリングリストの案内