在使用Hibernate进行开发时,为了能够让开发的产品运用到多个项目中,经常会遇到需要在同一个数据库服务器上部署多个相同库结构的数据库的情况。为了节省资源,常常是在原有数据库实例下新建一个数据库(对于Oracle来说,就是新建一个用户)。否则就得部署多个数据库服务了,得不偿失。
但是笔者在实际中发现,仅仅是修改Hibernate配置文件中连接的用户名是不够的。需要注意实体类映射文件中的配置。
在编写物理表对应的实体类时,在类的头部声明中一定不能添加“schema”属性,如下图所示:
如果使用的是映射文件来配置的实体类,如下图所示:
在上图中,“class”节点中一定不要增加“schema”属性。
在确保上述两个地方不要有schema属性后,在配置hibernate的user时就可以随便指定连接的数据库名称(对于Oracle来说是用户名)了: