我有一个标准,我正在尝试加入数据库视图。我想知道它是否可能,如果可以的话怎么做?
据我了解,createAlias
和createCriteria
只能加入根条件的子对象。我读到了detachedCriteria
,但看起来那些需要在数据库实体上创建,视图不是。
HQL等价物将是这样的
select * from root_criteria rc where rc.id in
(select view.id from DATABASE_VW view where view.field is not null)
提前致谢
答案 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对象,就像对表一样。