在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。在同一个表上搜索和筛选非常常见,不需要视图。如果有复杂连接,请使用视图。