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>
Run Code Online (Sandbox Code Playgroud)在我看来,第一个解决方案更容易处理,因为我目前正在使用这种方法来处理我的观点.
另一种选择是通过配置属性将视图创建 sql 放入由 hbm2ddl 运行的脚本中
hibernate.hbm2ddl.import_files
Run Code Online (Sandbox Code Playgroud)
假设您有一个表示该视图的实体,则必须在创建视图之前执行删除表操作,因为如果 hbm2ddl 找不到具有该名称的现有视图,则它会创建一个表。
| 归档时间: |
|
| 查看次数: |
8290 次 |
| 最近记录: |