处理休眠实体上的数据库视图的优雅方法?
我使用Hibernate的主要原因之一是它提供了切换到另一个数据库的灵活性,而无需重写任何代码。
但直到现在,我还没有找到一个好方法来定义与我的休眠实体匹配的表上的其他视图;我仍然使用简单的SQL脚本。有没有一种更优雅的方法来定义由休眠管理的表的视图?
理想情况下,我想使用HQL或其他通用方法来完成工作,这样我就不必担心我的SQL脚本与其他类型的数据库不兼容。
如果有一种方法可以做到这一点,那么第二个问题就是从这些视图中获取“合成”只读实例,这应该可以更容易地将聚合数据馈送到UI中。
编辑:
似乎我没有把问题说得足够清楚,所以这就是我要做的:我想编写独立于所用数据库的代码。由于我使用休眠,我只需要更改方言配置文件,然后就可以使用另一个DBMS。
问题:如何在不依赖特定 SQL 方言(以保持所有内容可移植性)甚至 HQL 的情况下在休眠实体上创建视图?如果可能,我是否可以使用 HQL 来查询这些视图,即创建只读聚合实体?是否有任何额外的休眠插件来帮助我做到这一点?到目前为止还没有找到任何东西... :-/