数据库中的表的一个字段ObjectId类型为char(36),但在hql用该字段作为条件查询时,NHibernatete生成的sql却是用nvarchar作为参数类型,因为类型不一样导致查询时无法使用索引,请问如何才能令NHibernate生成的sql是char而不是nvarcharhql:
"from settings t1 where t1.ObjectId = ?"NHibernatete生成sql如下:
exec sp_executesql N'select materialex0_.ObjectExtendId as ObjectEx1_261_, materialex0_.ObjectId as ObjectId261_, materialex0_.SettingsId as SettingsId261_ from settings materialex0_ where (materialex0_.ObjectId=@p0 )', N'@p0 nvarchar(36)', @p0 = N'2e49f0d8-f2e2-4ea3-a8a9-2fda356dfb7e'
hbm.xml:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="settings ,Entity" table="settings" lazy="false"> <id name="ObjectExtendId" column="ObjectExtendId" type="String" >
<generator class="assigned"/>
</id>
                  <property column="ObjectId" type="String" name="ObjectId" />
<property column="SettingsId" type="String" name="SettingsId"  />
</class>
</hibernate-mapping>