2017-03-13 7 views
0

HibernateはTABLE_PER_CLASS継承の一時テーブルを生成していますが、 oracleユーザーにはcreate table特権がありません。そのため、このアプローチはこのプロジェクトのオプションではありません。SpringブートアプリケーションでHibernate bulk_id_strategyを設定するには?

Hibernateバージョン5.2.8は、この問題を解決すると言われています。 pom.xmlを更新して、デフォルトのスターターハイバーネーションバージョン設定をオーバーライドしました。

まだ、次のプロパティでは運がありません。

**

spring.datasource.driver-class-name=oracle.jdbc.OracleDriver 
spring.datasource.url=jdbc:oracle:thin:@192.168.1. :1521: 
spring.datasource.username= 
spring.datasource.password= 
spring.jpa.hibernate.ddl-auto=none 
spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect 
spring.jpa.show-sql=true 
spring.jpa.hibernate.hql.bulk_id_strategy=org.hibernate.hql.spi.id.inline.InlineIdsInClauseBulkIdStrategy 

**

春ブーツアプリでこの設定の適切な場所があるの?次のように

<property name="hibernate.hql.bulk_id_strategy" 
value="org.hibernate.hql.spi.id.inline.InlineIdsInClauseBulkIdStrategy" 
    /> 

アプリケーションプロパティも更新されますか

コンテナはまだテスト環境で一時テーブルを生成しています。サーバーの起動。

種類は

http://maven.apache.org/xsd/maven-4.0.0.xsd」は次のように

のpom.xmlがあるについて> 4.0.0

また
<groupId>x.xx.ortakonline</groupId> 
<artifactId>PolsanOrtakOnlineServer</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>jar</packaging> 

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.5.0.RELEASE</version> 

</parent> 


<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <java.version>1.8</java.version> 
    <jjwt.version>0.7.0</jjwt.version> 
     <hibernate.version>5.2.8.Final</hibernate.version> 
</properties> 


<dependencies> 
    <dependency> 

     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 

    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-thymeleaf</artifactId> 
    </dependency> 


    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-jpa</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>com.oracle</groupId> 
     <artifactId>ojdbc14</artifactId> 
     <version>10.2.0.4.0</version> 
    </dependency> 


    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-test</artifactId> 
     <scope> test </scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-security</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>io.jsonwebtoken</groupId> 
     <artifactId>jjwt</artifactId> 
     <version>0.7.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.mobile</groupId> 
     <artifactId>spring-mobile-device</artifactId> 
    </dependency> 


    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-jpamodelgen</artifactId> 
    </dependency> 
</dependencies> 

+0

RDBMSオラクル11gR2の – desperado06

+1

'spring.jpa.propertiesを行う必要があります。<プロパティ名 - ここ>'正しい形式である(行方不明 'properties'に気付きますあなたの設定の一部であることに注意してください。また、あなたのポームにそのプロパティを追加すると、基本的に何もしません。 –

+0

これは私のためのトリックでした。 – desperado06

答えて

1

spring.jpa.properties.*内のすべてのプロパティが通過していますローカルのEntityManagerFactoryが作成されたときに、通常のJPAプロパティ(接頭辞は削除されています)として処理されます。

これは、Spring Bootリファレンスガイドのthe JPA sectionからのもので、追加のプロバイダ固有のプロパティを渡す方法について簡単に説明しています。あなたのapplication.propertiesに以下を追加する

はトリック

spring.jpa.properties.hibernate.hql.bulk_id_strategy=org.hibernate.hql.spi.id.inline.InlineIdsInClauseBulkIdStrategy 
関連する問題