Hibernate Criteria:是否可以使用条件访问数据库视图?

时间:2013-04-09 21:50:40

标签: hibernate view criteria

我有一个标准,我正在尝试加入数据库视图。我想知道它是否可能,如果可以的话怎么做?

据我了解,createAliascreateCriteria只能加入根条件的子对象。我读到了detachedCriteria,但看起来那些需要在数据库实体上创建,视图不是。

HQL等价物将是这样的

    select * from root_criteria rc where rc.id in
(select view.id from DATABASE_VW view where view.field is not null)

提前致谢

2 个答案:

答案 0 :(得分:1)

您可以尝试使用XML映射来创建指向数据库视图的实体类。实体中的每个字段都将映射到从视图中选择的字段。

摘自文件:

  
      
  • Hibernate映射的视图和基表之间没有区别。不过,这在数据库级别是透明的   某些DBMS不支持正确的视图,尤其是对于更新。

  •   
  • subselect(可选):将不可变和只读实体映射到数据库subselect。如果您想要一个视图,这非常有用   基表。

  •   

以下是示例配置,相应地进行修改。

 <class name="MappedClassName" mutable="false">
 <subselect>
 select view.id as viewId from DATABASE_VW view    
 </subselect>
 ...
 </class>

答案 1 :(得分:0)

是的,可以在标准中使用视图。

创建视图。 创建Java对象(持久性),它将为您从视图中选择的每个列具有映射成员变量。 创建hbm。

您现在可以在条件中使用Java对象,就像对表一样。