使用 Hibernate 调用数据库视图

Posted

技术标签:

【中文标题】使用 Hibernate 调用数据库视图【英文标题】:Call Database views using Hibernate 【发布时间】:2013-04-16 11:22:53 【问题描述】:

我正在使用 Hibernate 在 Spring MVC 中做项目,我正在使用 mysql DB。在我的数据库中,我已经创建了一个视图,我想使用休眠调用该视图。

所以我在回答中提到了this post,你会看到"<class name="SomeThing" table="some_thing"/>" 所以,

类名Something 是一个java 类,它的属性是数据库视图中的列,对吧?

那么映射的其他部分我需要在映射中添加<property>吗?

【问题讨论】:

是的。您应该有 标记来将视图的列映射到您的 bean。但是请注意,将 java bean 映射到视图(就像对表进行映射)对于读取操作来说可以正常工作。但是,尝试删除/更新时会出现复杂情况,或者在大多数情况下很可能是不可能的。 如果您从 Hibernate 开始,那么请忘记基于 XML 的映射。改用注释:更标准、更清晰、更容易。 @DevBlanked 谢谢您的回复 :)。我的大部分观点都是针对读取操作的,所以不用担心。如果我为此进行映射,所以我在 hibernate.cfg.xml 中添加了 <mapping resource> 对吗?如果我在hibernate.cfg.xml 中添加映射文件的条目,那么它会生成表格,不是吗?或者不需要在休眠文件中添加条目,只需使用标准 API,HQL 从数据库视图中获取数据。 @Amogh 您很可能需要手动创建视图。我怀疑hibernate是否可以知道它被映射到一个视图,因为映射没有说这样的东西 【参考方案1】:

您必须使用与其他实体类相同的 View 类。您也可以使用注释、属性、映射和其他关系。在我的项目中,我们使用了相同的但 db 是 PostgreSQL。没关系。

【讨论】:

嘿,Amough,当您接受任何答案时,您应该对该答案投赞成票以表示赞赏。

以上是关于使用 Hibernate 调用数据库视图的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Hibernate 创建视图?

使用视图作为 Hibernate 的连接表

从 JPA/Hibernate 中的视图加载实体

创建数据库视图与创建 Hibernate 映射 - 性能 [关闭]

为啥hibernate找不到我的视图

hibernate之处理视图