Hibernate version:
NHibernate 1.2.1.GA
Mapping documents:
http://www.hibernate.org/hib_docs/nhibernate/1.2/reference/en/html/quickstart.html#quickstart-mapping
Code between sessionFactory.openSession() and session.close():
First one:
Code:
query = session.CreateQuery("select c from Cat as c where c.Id in (:qw11) or c.Name in (:qw1)");
query.SetParameterList("qw11", new string[] {"I", "J"});
query.SetParameterList("qw1", new string[] {"Princess", "Prince", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J"});
foreach (Cat cat in query.Enumerable())
{
Console.Out.WriteLine("Cat: " + cat.Name);
}
Second one:
Code:
query = session.CreateQuery("select c from Cat as c where c.Id in (:qw1) or c.Name in (:qw10)");
query.SetParameterList("qw1", new string[] {"Princess"});
query.SetParameterList("qw10", new string[] {"Princess"});
foreach (Cat cat in query.Enumerable())
{
Console.Out.WriteLine("Cat: " + cat.Name);
}
Full stack trace of any exception that occurs:
First one:
Quote:
Unhandled Exception: System.ArgumentException: Item has already been added. Key in dictionary: 'qw110_' Key being added: 'qw110_'
at System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)
at System.Collections.Hashtable.Add(Object key, Object value)
at NHibernate.Impl.AbstractQueryImpl.BindParameterList(String queryString, String name, TypedValue typedList, IDictionary namedParams)
at NHibernate.Impl.AbstractQueryImpl.BindParameterLists(IDictionary namedParams)
at NHibernate.Impl.QueryImpl.Enumerable()
...
Second one:
Quote:
Unhandled Exception: NHibernate.QueryException: Named parameter does not appear in Query: qw100_ [select c from QuickStart.Cat as c where c.Id in (:qw10_) or c.Name in (:qw10_00_)]
at NHibernate.Hql.Classic.QueryTranslator.GetNamedParameterLocs(String name)
at NHibernate.Loader.Loader.GetParameterTypes(QueryParameters parameters, Boolean addLimit, Boolean addOffset)
at NHibernate.Loader.Loader.PrepareQueryCommand(QueryParameters parameters, Boolean scroll, ISessionImplementor session)
at NHibernate.Hql.Classic.QueryTranslator.GetEnumerable(QueryParameters parameters, ISessionImplementor session)
at NHibernate.Impl.SessionImpl.Enumerable(String query, QueryParameters parameters)
at NHibernate.Impl.QueryImpl.Enumerable()
...
Name and version of the database you are using:
PostgreSQL 8.2.6
I just append the names with "_" to prevent the problems.
Thanks,
Shing