在Hibernate中使用数据库视图

在Hibernate中使用数据库视图,hibernate,views,Hibernate,Views,我的数据库中有一个名为Samples的表,它有一个名为baseline的列,这是一个布尔变量。我想在baseline设置为1的行中搜索,所以我在DB(MySQL)中创建了一个视图。现在,我不想查询Samples表,而是想查询这个视图(名称为Baselines) 是否需要在hibernate cfg文件中添加此视图的声明?另外,我是否需要为此创建另一个名为Baselines的Java类?Hibernate可以像对待任何表一样对待视图。只需基于该视图定义一个实体类(基线,如您所说) 视图最常见的困难

我的数据库中有一个名为
Samples
的表,它有一个名为
baseline
的列,这是一个布尔变量。我想在
baseline
设置为
1
的行中搜索,所以我在DB(MySQL)中创建了一个视图。现在,我不想查询
Samples
表,而是想查询这个视图(名称为
Baselines


是否需要在hibernate cfg文件中添加此视图的声明?另外,我是否需要为此创建另一个名为
Baselines
的Java类?

Hibernate可以像对待任何表一样对待视图。只需基于该视图定义一个实体类(
基线,如您所说)

视图最常见的困难是某些数据库引擎无法处理视图上的插入或更新,因此如果应用程序试图修改数据,请注意这一点。我不知道MySQL是否能够做到这一点


使用视图的另一种选择是使用,它做的事情基本相同,但在Hibernate会话级别。

因此我需要创建一个名为Baselines的Java类,其字段与Samples类相同?您可以添加
@Immutable
以避免更新。如果您从实体生成数据库架构,您可能还需要使用
@Subselect(“select*from BaselinesView”)
。您不需要用于此目的的视图,只需通过
过滤器
其中
注释即可实现。此外,您可以使用JPA。在同一个表上搜索和筛选非常常见,不需要视图。如果有复杂连接,请使用视图。