使用Hibernate进行视图查询

8
如何使用Hibernate映射具有多个实体的视图?
此致, chaitu
3个回答

8

6

子查询是您的自然选择。这里有一个可行的例子:假设我们在DBMS中有一个名为“view1”的视图。您不需要其他任何东西,尽管如果视图不可更新,则使用@Immutable对于性能问题会很好。请注意,您必须在类和视图中都有一个id列。

@Entity
@Subselect("select * from view1")
public class EventView {
    @Id @GeneratedValue
    private int id;

它不起作用。请查看我的问题:http://stackoverflow.com/questions/38269722/hibernate-view-creation-wont-work - emoleumassi

4
你可以使用 @subselect 注释。以下是官方文档的示例:
@Entity
@Subselect("select item.name, max(bid.amount), count(*) "
    + "from item "
    + "join bid on bid.item_id = item.id "
    + "group by item.name")
@Synchronize( {"item", "bid"} ) //tables impacted
public class Summary {
    @Id
    public String getId() { return id; }
    ...
}

它不起作用。请查看我的问题:http://stackoverflow.com/questions/38269722/hibernate-view-creation-wont-work - emoleumassi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接