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

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

登录用户:penw

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

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

//用户实体类
@Entity
@Table(name="acc_user")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class User implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = -5334753290712300510L;
	.....//省略其他属性及set、get方法
	//用户角色中间表 acc_user_role
	@ManyToMany(targetEntity = Role.class, cascade = { CascadeType.PERSIST,
			CascadeType.MERGE })
	@JoinTable(name = "ACC_USER_ROLE", joinColumns = { @JoinColumn(name = "user_id") }, inverseJoinColumns = { @JoinColumn(name = "role_id") }, uniqueConstraints = @UniqueConstraint(columnNames = {
			"user_id", "role_id" }))

//角色实体类
@Entity
@Table(name="acc_role")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Role implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = -643373952721531933L;
	.....//省略其他属性及set、get方法
	//角色权限中间表 acc_role_power
@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"来指定空间,所以添加之后,顺利解决问题。 

代码如下:

//用户实体类
@Entity
@Table(name="acc_user",schema="penw")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class User implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = -5334753290712300510L;
	.....//省略其他属性及set、get方法
	//用户角色中间表 acc_user_role
	@ManyToMany(targetEntity = Role.class, cascade = { CascadeType.PERSIST,
			CascadeType.MERGE })
	@JoinTable(schema="penw",name = "ACC_USER_ROLE", joinColumns = { @JoinColumn(name = "user_id") }, inverseJoinColumns = { @JoinColumn(name = "role_id") }, uniqueConstraints = @UniqueConstraint(columnNames = {
			"user_id", "role_id" }))

//角色实体类
@Entity
@Table(name="acc_role",schema="penw")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Role implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = -643373952721531933L;
	.....//省略其他属性及set、get方法
	//角色权限中间表 acc_role_power
	@ManyToMany(targetEntity = Power.class, cascade = { CascadeType.PERSIST,
			CascadeType.MERGE })
	@JoinTable(schema="penw",name = "ACC_ROLE_POWER", joinColumns = { @JoinColumn(name = "role_id") }, inverseJoinColumns = { @JoinColumn(name = "power_id") }, uniqueConstraints = @UniqueConstraint(columnNames = {
			"role_id", "power_id" }))



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值