是否可以在Hibernate @Subselect注释中使用HQL?

时间:2016-10-27 07:47:21

标签: hibernate annotations subquery hql

如果我在@Subselect中使用SQL,我会得到结果。是否可以在此注释中使用HQL?

@Entity
@Subselect("select * from Foo_table")
public class FooView

@Entity
@Subselect("select a from FooEntity a")
public class FooView

1 个答案:

答案 0 :(得分:1)

我认为这是不可能的,因为根据https://docs.jboss.org/hibernate/orm/3.6/reference/en-US/html/mapping.html#mapping-declaration-class

  

Hibernate映射的视图和基表之间没有区别。这在数据库级别是透明的,尽管某些DBMS不能正确支持视图,尤其是对于更新。有时您希望使用视图,但不能在数据库中创建一个视图(即使用旧模式)。在这种情况下,您可以使用@ org.hibernate.annotations.Subselect

将不可变和只读实体映射到给定的SQL子选择表达式。

它将直接作为DB的查询语句执行,没有HQL层并从HQL转换为纯SQL ...但您可以使用它并测试