I get the same behavior in NH 3.

On Aug 31, 11:06 am, Diego Mijelshon <[email protected]> wrote:
> I couldn't reproduce that in NH 3. Can you check with it?
>
>     Diego
>
>
>
> On Tue, Aug 31, 2010 at 11:45, jcomet <[email protected]> wrote:
> > When add a  restriction on a particular string property with a value
> > of "true" or "false", NH (2.1.2.4000) changes it to a bit value.  See
> > example class, hbm, query and resulting SQL.  Note in the last snip,
> > the line "WHERE this_.SettingValue = 1" should read "WHERE
> > this_.SettingValue = 'true'.   If I change the restriction from "true"
> > to "poop", the NH correctly surrounds poop with quotes.  My conclusion
> > is that NH tries to convert the string value to boolean, and if it
> > can, it does so using the value substitution from the session factory
> > configuration.  This is curious, since NH knows that column is a
> > string from the mapping, so why would it need to guess?   Is there a
> > way to inform NH not to do this?
>
> > namespace MYAPP.Core.Domain
> > {
> >    public class EmployeeSetting
> >    {
> >        public virtual int ID { get; set; }
> >        public virtual string SettingValue { get; set; }
> >        public virtual Employee Employee { get; set; }
> >        public virtual SettingType SettingType { get; set; }
> >    }
> > }
>
> > <?xml version="1.0" encoding="utf-8" ?>
> > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
> > assembly="MYAPP.Core" namespace="MYAPP.Core.Domain">
> >  <class name="MYAPP.Core.Domain.EmployeeSetting,MYAPP.Core"
> > table="EmployeeSetting">
> >    <id name="ID" column="ID" type="Int32" unsaved-value="0">
> >      <generator class="native" />
> >    </id>
> >    <property name="SettingType" column="SettingType"
> > type="MYAPP.Core.Domain.SettingType, MYAPP.Core" not-null="false" />
> >    <property name="SettingValue" column="SettingValue" type="string"
> > not-null="false"  />
> >    <many-to-one name="Employee" column="EmployeeID"
> > class="MYAPP.Core.Domain.Employee,MYAPP.Core.Domain"/>
> >  </class>
> > </hibernate-mapping>
>
> > IList<EmployeeSetting> es = _EmployeeSettingDAO.GetSession()
> >        .CreateCriteria<EmployeeSetting>()
> >                .Add(Restrictions.Eq("SettingValue", "true"))
> >                .Add(Restrictions.Eq("SettingType",
> > SettingType.ReceiveAlerts))
> >                .List<EmployeeSetting>();
>
> > SELECT this_.ID           as ID8_0_,
> >       this_.SettingType  as SettingID8_0_,
> >       this_.SettingValue as SettingV3_8_0_,
> >       this_.EmployeeID   as EmployeeID8_0_
> > FROM   EmployeeSetting this_
> > WHERE  this_.SettingValue = 1 /* @p0 */
> >       and this_.SettingType = 1 /* @p1 */
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "nhusers" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to
> > [email protected]<nhusers%[email protected]­>
> > .
> > For more options, visit this group at
> >http://groups.google.com/group/nhusers?hl=en.- Hide quoted text -
>
> - Show quoted text -

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en.

Reply via email to