NHibernate属性公式过滤器

rre*_*ejc 5 nhibernate hibernate

我有以下课程:

MyClass
public virtual int Id { get; set; }
public virtual int Code { get; set; }
public virtual int Description { get; set; }
public virtual int Name { get; set; }
Run Code Online (Sandbox Code Playgroud)

使用以下映射:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="TestApplication" assembly="TestApplication">
  <class name="MyClass" table="MyTable">
    <id name="Id" column="id">
      <generator class="native"/>
    </id>

    <property name="Code" column="code"/>
    <property name="Description" column="description"/>
    <property name="Name" formula="(SELECT b.translation FROM translations b WHERE b.translation_id = translation_id AND b.language_id = :TranslationFilter.LanguageId)"/>
  </class>

  <filter-def name="TranslationFilter">
    <filter-param name="LanguageId" type="Int32"/>
  </filter-def>
</hibernate-mapping>
Run Code Online (Sandbox Code Playgroud)

我试图通过spring加载实体:

Session.EnableFilter("TranslationFilter").SetParameter("LanguageId", 1);
return Session.Get<MyClass>(1);
Run Code Online (Sandbox Code Playgroud)

但我得了adoexception.我看到(在一个分析器中)该变量:TranslationFilter.LanguageId没有被替换?那个参数值不发送到服务器?

这是可能的(在公式中有过滤器)以及如何?

非常感谢!

Jag*_*uar 1

此功能不受官方支持。因此,奥伦关于两种不同功能(公式和过滤器)的组合的博客文章应该持保留态度......