see [seasar-dotnet:467]
現在、Daoインターフェースに以下のようなメソッドを定義しています。
[Seasar.Dao.Attrs.Sql("select * from shop_OrderDetail /*BEGIN*/ where /*IF par1am.HasValue*/ order_detail_id = 1 /*END*/ /*END*/")]
IList SelectListByIncludeNumberParam(Nullables.NullableDecimal par1am);
ここで上記メソッドを呼び出すとJScript.NETから下記のような例外が帰ってきます。
--------------------------------------------------------------------------------
Seasar.Framework.Exceptions.JScriptEvaluateRuntimeException: [ESSR0073]JScriptException occured, because self.GetArg('par1am') self.GetArg('.HasValue')
場所 Seasar.Framework.Util.JScriptUtil.Evaluate(String exp, Hashtable ctx, Object root)
場所 Seasar.Dao.Node.AbstractNode.InvokeExpression(String expression, ICommandContext ctx)
場所 Seasar.Dao.Node.IfNode.Accept(ICommandContext ctx)
場所 Seasar.Dao.Node.ContainerNode.Accept(ICommandContext ctx)
場所 Seasar.Dao.Node.BeginNode.Accept(ICommandContext ctx)
場所 Seasar.Dao.Node.ContainerNode.Accept(ICommandContext ctx)
場所 Seasar.Dao.Impl.SelectDynamicCommand.Execute(Object[] args)
場所 XXX.Dao.Allcommon.s2dao.S2DaoInterceptor.Invoke(IMethodInvocation invocation) 場所 S2DaoInterceptor.cs:行 107
場所 Seasar.Framework.Aop.Proxy.AopProxy.Invoke(IMessage msg)
場所 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
場所 XXX.Dao.Exdao.ShopOrderDetailDao.SelectListByIncludeNumberParam(NullableDecimal par1am)
場所 XXXTest.S2Dao.QueryAnnotationTest.SelectListByNumberIncludeParamTest() 場所 QueryAnnotationTest.cs:行 35
System.Reflection.TargetInvocationException: 呼び出しのターゲットが例外をスローしました。
場所 System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
場所 System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
場所 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
場所 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
場所 System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
場所 Seasar.Framework.Util.JScriptUtil.Evaluate(String exp, Hashtable ctx, Object root)
Microsoft.JScript.JScriptException: ';' が必要です。
eval code: 行 1 - エラー: ';' が必要です。
--------------------------------------------------------------------------------