0

hibernate 5.1.3 节末尾的示例没有显示传递参数的示例。

Hibernate 映射的视图和基表之间没有区别。这在数据库级别是透明的,尽管某些 DBMS 不正确支持视图,尤其是更新时。有时您想使用视图,但不能在数据库中创建视图(即使用旧模式)。在这种情况下,您可以将不可变的只读实体映射到给定的 SQL 子选择表达式:

<class name="Summary">
    <subselect>
        select item.name, max(bid.amount), count(*)
        from item
        join bid on bid.item_id = item.id
        group by item.name
    </subselect>
    <synchronize table="item"/>
    <synchronize table="bid"/>
    <id name="name"/>
    ...
</class>

是否可以?如果是这样,怎么办?

谢谢,弗兰兹

4

3 回答 3

1

我不认为这是可能的,因为映射文件就像一个静态描述。

于 2009-08-10T08:49:26.760 回答
0

从 Hibernate 3 开始,您可以使用公式来映射这种类型的只读计算字段。例子:

@Formula("(SELECT b.BANK_NAME FROM " +
        " BANK_INFORMATION b, BILLING_AGENT_BANK ba " +
        " WHERE ba.CNPJ = COMPANY_CNPJ " +
        " AND b.BANK_ID = ba.BANK_ID)")
public String getBankName() {
    return bankName;
}

此示例使用 Annotated 属性,但您可以在映射文件中执行相同操作。

于 2009-12-22T16:28:14.657 回答
0

在 NHibernate 中:

<class name="Blog" mutable="false"> 
<subselect> 
  SELECT Blog.Id, Blog.Author, Blog.Title, Comment.Comment 
  FROM Blog INNER JOIN Comment ON Blog.Id = Comment.Blog_id 
  WHERE Comment.LanguageId = :blogcomment.languageId 
</subselect> 
<id name="Id"> 
  <generator class="assigned" /> 
</id> 
<property name="Author" /> 
<property name="Title" /> 
<property name="Comment" /> 

于 2011-04-01T17:53:28.103 回答