在使用 hibernate.hbm2ddl.auto 属性创建表时,有什么方法可以创建视图。我正在使用注释类型来定义表及其字段。是否有任何属性可用于通过休眠创建视图?
问问题
9522 次
2 回答
6
Hibernate 不会自动为您执行此操作。但是,这些解决方案之一可能对您有用:
在您的数据库中创建一个视图,并使用 hibernate 使用这些列定义一个模型。如果 Hibernate 找到这个视图,它不会为那个模型创建一个表。其余的就像使用真正的桌子一样。
Hibernate 确实使您能够在 XML 映射文件中自己创建(和删除)其他数据库对象。像这样的东西。
<database-object> <create>create or replace view yourView</create> <drop>drop view yourView</drop> <dialect-scope name='org.hibernate.dialect.Oracle9Dialect' /> </database-object>
在我看来,第一个解决方案更容易处理,因为我目前正在使用这种方法来处理我的观点。
于 2013-03-05T05:03:43.100 回答
3
另一种选择是将视图创建 sql 放入由 hbm2ddl 通过配置属性运行的脚本中
hibernate.hbm2ddl.import_files
假设您有一个表示该视图的实体,您必须在创建视图之前执行一个删除表,因为如果 hbm2ddl 找不到该名称的现有视图,它将创建一个表。
于 2013-11-08T17:35:34.953 回答