2
私のプロジェクトでNhibernate 2.1.0を使用しています。nHibernateという名前のクエリでreplace SQL関数を使用する
session.GetNamedQuery("updateUNC")
.SetString("oldUNC", "old")
.SetString("newUNC", "new")
.ExecuteUpdate();
しかし、私は次の例外を取得:私は次のコードを使用して名前付きクエリを実行
<hibernate-mapping xmlns='urn:nhibernate-mapping-2.2'>
<sql-query name='updateUNC'>
<query-param name='oldUNC' type='String'/>
<query-param name='newUNC' type='String'/>
<![CDATA[
update Item s set
s.Path= replace(s.Path,:oldUNC, :newUNC),
]]>
</sql-query>
</hibernate-mapping>
:
は、私は、プロパティのパスを持つItemクラスと次の名前付きクエリを持っています:
NHibernate.Hql.Ast.ANTLR.QuerySyntaxException was unhandled
Message="Can't determine SqlType of parameter name=oldUNC, expectedType=Unknow\n Possible cause: wrong case-sensitive property-name."
Source="NHibernate"
StackTrace:
at NHibernate.Hql.Ast.ANTLR.Exec.BasicExecutor.Execute(QueryParameters parameters, ISessionImplementor session) in C:\Projects\Nhibernate\nhibernate2.1.0\src\NHibernate\Hql\Ast\ANTLR\Exec\BasicExecutor.cs:line 66
at NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl.ExecuteUpdate(QueryParameters queryParameters, ISessionImplementor session) in C:\Projects\Nhibernate\nhibernate2.1.0\src\NHibernate\Hql\Ast\ANTLR\QueryTranslatorImpl.cs:line 149
at NHibernate.Engine.Query.HQLQueryPlan.PerformExecuteUpdate(QueryParameters queryParameters, ISessionImplementor session) in C:\Projects\Nhibernate\nhibernate2.1.0\src\NHibernate\Engine\Query\HQLQueryPlan.cs:line 328
at NHibernate.Impl.StatelessSessionImpl.ExecuteUpdate(String query, QueryParameters queryParameters) in C:\Projects\Nhibernate\nhibernate2.1.0\src\NHibernate\Impl\StatelessSessionImpl.cs:line 962
at NHibernate.Impl.QueryImpl.ExecuteUpdate() in C:\Projects\Nhibernate\nhibernate2.1.0\src\NHibernate\Impl\QueryImpl.cs:line 120
at Catalog.Repository.ItemsRepository.ChangeUNC(String oldUNC, String newUNC) in C:\Projects\Catalog\Catalog\Repository\ItemsRepository.cs:line 148
SetParameterを使用してパラメータ値を設定しようとしました。string>とSetParameter( ":oldUNC"、 "old" NHibernateUtil.String)が同じエラーで失敗しました。これは、NHibernateのは、ちょうどthet tehのパラメータ値が:(文字列であると言って私を無視のようなものであるだけで推測
はい私は、それを?助けにならない。 –