2017-08-23 9 views
0

私はMS SQL Server(2008)データベースに2つのスキーマを持っています。ドメインオブジェクトの認証とmyapp私は両方のスキーマにJPA-Entityを持たせたいと思っています。私は設定のためにSpringBootを使用します。JPAでSQL Server 2008スキーマを使用

エンティティテーブルは正しいスキーマに必要なだけ作成されます。 myschema.jobですが、リレーションシップテーブル。 Job_Employeeは、デフォルトのスキーマdbo内に作成されます。自動的に作成された表がどのスキーマに格納されるかを設定するにはどうしたらいいですか?

@Entity 
@Table(schema="myschema") 
public class Job {[...] 

私application.ymlは、次のようになります。

spring: 
    profiles: dev 
    datasource: 
    datasource1: 
     url: jdbc:sqlserver://localhost;databaseName=mydb;schema=myschema 
     username: SA 
     password: ### 
    datasource2: 
     url: jdbc:sqlserver://localhost;databaseName=mydb;schema=dbo 
     username: SA 
     password: ###  
    jpa: 
     show-sql: true 
     hibernate.ddl-auto : create-drop 
     properties: 
     hibernate.dialect: org.hibernate.dialect.SQLServer2012Dialect 
     hibernate.default_schema: dbo 

およびデータソースは

@Configuration 
@EnableJpaRepositories 
public class JPAConfiguration { 

    @Bean 
    @Primary 
    @ConfigurationProperties("spring.datasource.datasource1") 
    public DataSourceProperties firstDataSourceProperties() { 
     return new DataSourceProperties(); 
    } 

    @Bean 
    @Primary 
    @ConfigurationProperties("spring.datasource.datasource1") 
    public DataSource firstDataSource() { 
     return firstDataSourceProperties().initializeDataSourceBuilder().build(); 
    } 

    @Bean 
    @ConfigurationProperties("spring.datasource.datasource2") 
    public DataSourceProperties secondDataSourceProperties() { 
     return new DataSourceProperties(); 
    } 

    @Bean 
    @ConfigurationProperties("spring.datasource.datasource2") 
    public DataSource secondDataSource() { 
     return secondDataSourceProperties().initializeDataSourceBuilder().build(); 
    } 
} 

おかげで設定されます!

答えて

0

答えは:すべてのコレクションは@JoinTableアノテーションとともに適切なスキーマにマッピングする必要があります。

など。私たちのケースで:これは、表の結果

@JoinTable(schema="myschema") 
@OneToMany(cascade=CascadeType.ALL) 
@Column(nullable = false) 
private List<Employee> employee; 

myschema.job_employeeをcalles。

関連する問題