如何在hibernate和postgresql中使用多个Schema

时间:2016-10-18 23:10:21

标签: hibernate spring-boot hibernate-criteria

我正在使用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不能同时使用多个架构。有什么方法可以解决这个问题并使这个例子有效吗?

0 个答案:

没有答案