2009-12-12 23 views
7

私はCastel Active Recordを使用して検索機能を実装しました。私は、コードが十分に単純であると思ったが、私は名前付きパラメータを持つnhibernate hql

NHibernate.QueryParameterExceptionを取得保管:名前付きパラメータ[searchKeyWords]

エラーを見つけることができませんでした。誰かが何が悪くなったか教えてもらえますか感謝万円。

public List<Seller> GetSellersWithEmail(string searchKeyWords) 
     { 
      if (string.IsNullOrEmpty(searchKeyWords)) 
      { 
       return new List<Seller>(); 
      } 
      string hql = @"select distinct s 
          from Seller s 
          where s.Deleted = false 
            and (s.Email like '%:searchKeyWords%')"; 

      SimpleQuery<Seller> q = new SimpleQuery<Seller>(hql); 
      q.SetParameter("searchKeyWords", searchKeyWords); 
      return q.Execute().ToList(); 
     } 

答えて

13

パラメータで%文字を渡さないのはなぜですか?

string hql = @"select distinct s 
          from Seller s 
          where s.Deleted = false 
            and (s.Email like :searchKeyWords)"; 
    SimpleQuery<Seller> q = new SimpleQuery<Seller>(hql); 
    q.SetParameter("searchKeyWords", "%"+searchKeyWords+"%"); 
    return q.Execute().ToList(); 
+0

私はまだあなたの解決策を確認していないが、私は http://www.stpe.se/2008/07/hibernate-hql-like-query-named-parameters/ から同様の答えを得ました とその解決策が働いた。だから、あなたのことも正しいと思います。どうもありがとう。 –

関連する問題