如果我在@Subselect中使用SQL,我会得到结果。是否可以在此注释中使用HQL?
@Entity
@Subselect("select * from Foo_table")
public class FooView
像
@Entity
@Subselect("select a from FooEntity a")
public class FooView
答案 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 ...但您可以使用它并测试