欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Hibernate自动创建数据库表无法创建到登录用户空间而是创建到System空间

程序员文章站 2024-02-12 18:38:52
...

Hibernate自动创建数据库表无法创建到登录用户空间而是创建到System空间

问题描述:Hibernate自动创建数据库表无法创建到登录用户空间而是创建到System空间

登录用户:penw

最近项目开展二期,数据库需要由Mysql转移到Oracle,因此需重构实体类来实现hibernate自动创建表格功能。

简单的举个例子,用户、角色、权限、以及他们之间的中间表:

@ManyToMany(targetEntity = Power.class, cascade = { CascadeType.PERSIST,
CascadeType.MERGE })
@JoinTable(name = "ACC_ROLE_POWER", joinColumns = { @JoinColumn(name = "role_id") }, inverseJoinColumns = { @JoinColumn(name = "power_id") }, uniqueConstraints = @UniqueConstraint(columnNames = {
"role_id", "power_id" }))

实体类编写完毕,但是当我启动服务器的时候,发现所有的表格都跑到System这个用户表空间下面去了,而不再我指定的用户下面,,经检查,发现Oracle和Mysql不一样,需在注解里面添加schema="penw"来指定空间,所以添加之后,顺利解决问题。

代码如下:

Hibernate自动创建数据库表无法创建到登录用户空间而是创建到System空间