2

我现在正在发现休眠。因此我的问题可能很愚蠢:)

我正在尝试做的(我正在使用旧数据库)是获取一个实体,该实体的一些数据来自表值函数。我的实体如下

public class Entity
{
  public virtual int Id { get; protected set; }
  ....
  public virtual int AccessRightId { get; set; }
}

其中 AccessRightId 来自表值函数 (fp_AccessRight('userId'))

我有以下映射

public class EntityMap : ClassMap<Entity>
  {
    public EntityMap ()
    {
      this.Id(entity => entity .Id);          
      this.Join(
          "fp_AccessRight('userId')",
            join =>
            {
                join.Fetch.Join();
                join.KeyColumn("EntityId");
                join.Map(t => t.AccessRightId, "AccessRightType");
                join.Table();
            });
    }        
}

不幸的是,我无法用任何值替换“userId”。谢谢。有没有办法做到这一点?

4

1 回答 1

1

我终于解决了。

诀窍是像这样进行连接:

this.Join("fp_ACCOUNT_ACL(:AclFilter.userId)"

然后简单地启用过滤器

this.session.EnableFilter("AclFilter").SetParameter("userId", "bdd#5");  

我在这里找到了一个例子。

于 2012-09-10T08:32:16.510 回答