2012-08-15 68 views
1

我有一個命名的nHibernate查詢返回自定義數據。所以我決定創建一個bean類來封裝數據。下面是一些代碼:nHibernate命名查詢,結果轉換和列名與空白

public IList<Report> GetReport(int reportId) 
{ 
    return Session.GetNamedQuery("GetReport") 
       .SetParameter("Id", reportId) 
       .List<Report>(); 
} 


public class Report 
{ 
    public virtual string Id { get; set; } 
    ... 
    public virtual string CustomColumn { get; set; } 
} 

和映射:

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="MyAssembly" 
namespace="MyAssembly.Model"> 
    <class name="Report" table="Report"> 
     <id name="Id" column="Id"> 
      <generator class="assigned"/> 
     </id> 
       ... 
     <property column="`Custom column`" name="CustomColumn" /> 
    </class> 

    <sql-query name="GetReport"> 
     <return class="Report"/> 
     <query-param name="Id" type="int" /> 
     exec GetReport :Id 
    </sql-query> 
</hibernate-mapping> 

但是,當我調用這個方法我有一個例外:

NHibernate.Exceptions.GenericADOException:無法執行查詢 - - > System.IndexOutOfRangeException:[Custom column]

Help,any?

回答

1

好的,我自己發現了這個問題。我想,我需要轉義列名,其中包含空格,就像我爲表名所做的那樣。但顯然我不應該。

這個語法沒問題。

<property column="Custom column" name="CustomColumn" />