我的数据库中有一个名为Samples
的表,它有一个名为baseline
的列,它是一个布尔变量。我想在baseline
设置为1
的行中进行搜索,因此我在DB(MySQL)中创建了一个视图。现在,我不想查询Samples
表,而是查询此视图(名称为Baselines
)。
我是否需要在hibernate cfg文件中为此视图添加声明?另外,我是否需要为此创建另一个名为Baselines
的Java类?
答案 0 :(得分:10)
Hibernate可以像处理任何表一样对待视图。只需根据该视图定义实体类(正如您所说的那样Baselines
)。
视图最常见的困难是某些数据库引擎无法处理视图上的插入或更新,因此如果应用程序尝试修改数据,请注意这一点。我不知道MySQL能否做到这一点。
使用视图的另一种方法是使用Hibernate Filters,这可以做同样的事情,但是在Hibernate会话级别。
答案 1 :(得分:1)
我在NHiberNate和SQL Server之间做了类似的事情。
我将视图视为与普通表相同。