我正在使用hibernate,Spring boot和postgresql开发一个应用程序。在我的数据库中有3个模式(“auth”,“common”,“app”)和不同的表。并且不同模式中的表彼此有关系。例如,我有两个以下实体:
@Entity
@Table(name = "USERS" , schema="auth")
public class User {
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(unique = true , nullable = false)
private Profile profile;
}
@Entity
@Table(name = "PROFILES" , schema="common")
public class Profile {
}
这是我的hibernate配置的一部分:
@Configuration
public class DatabaseConfiguration {
.......
@Bean
public LocalSessionFactoryBean sessionFactory(){
LocalSessionFactoryBean factoryBean = new LocalSessionFactoryBean();
.........
Properties properties = new Properties();
properties.put("hibernate.default_schema", "app");
......
factoryBean.setHibernateProperties(properties);
return factoryBean;
}
}
现在我的问题是当我尝试使用hibernate会话工厂保存新用户时,我得到了这个例外:
org.postgresql.util.PSQLException: ERROR: relation "app.users" does not exist
所以似乎hibernate不能同时使用多个架构。有什么方法可以解决这个问题并使这个例子有效吗?