我有一个基于Seam 2.2的Java EE 5 Web应用程序,其中有一堆表通过Hibernate 3.3.3映射到JPA 1.0实体。在开发过程中,它在Tomcat 6,Oracle 10 XE和Windows 7上运行。
现在,运营部门提出了将数据模型拆分为一个模式(该模式是所有数据库对象的所有者myschema)和一个充当应用程序的数据库用户的模式的请求myschema_app。所以我做了以下事情:
myschema
myschema_app
select
insert
update
delete
hibernate.default_schema
persistence.xml
context.xml
当我将hibernate.hbm2ddl.auto设置为时启动应用程序时,validate当框架尝试创建一个EntityManagerFactory告诉我该表丢失的框架时,我得到一个异常。当我直接在带有myschema_app连接的sql工具中执行select语句时,一切正常。
hibernate.hbm2ddl.auto
validate
EntityManagerFactory
我知道在另一个表上使用同义词对应用程序是透明的。有谁知道我可能忽略了什么?
我的猜测是hbm2ddl是专门针对表而不是同义词进行搜索的,但是您的应用程序确实应该像表存在于架构中一样工作。尝试删除hbm2ddl选项并测试您的应用程序。
编辑:看来我的猜测是对的:https : //forum.hibernate.org/viewtopic.php?p=2438033