2017-07-12 37 views
1

hibernateのflushプロパティの設定に関するヘルプ。hibernateでflushmodeを設定する正しい方法は何ですか

以下のエラーが発生しています。

Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.

私は私がフラッシュプロパティを設定する方法をただ混乱しています。

<property name="org.hibernate.FlushMode" value="COMMIT"/> 

    <property name="org.hibernate.flushMode" value="COMMIT"/> 

    <property name="org.hibernate.flushMode" value="commit"/> 

    <property name="hibernate.flushMode" value="COMMIT"/> 

Javaコードを使用せずにプロパティを設定する適切な方法は何ですか?

私はこの方法で試しましたが、それでも同じエラーが表示されました。

<hibernate-configuration> 
    <session-factory> 
     <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 
     <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test?createDatabaseIfNotExist=true</property> 
     <property name="hibernate.connection.username">root</property> 
     <property name="hibernate.connection.password">root</property> 
     <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> 
     <property name="show_sql">true</property> 
     <property name="hbm2ddl.auto">update</property> 
     <property name="org.hibernate.flushMode" >commit</property> 
     <mapping class="com.example.User" /> 
    </session-factory> 
</hibernate-configuration> 
+0

あなたは更新を実行しています - おそらく予期しない - 読み取り専用トランザクション内では、それが問題です – Zeromus

答えて

1

が正しいのは<property name="org.hibernate.flushMode" value="COMMIT"/>です。

しかし、問題は、flushModeの値が正しくないことです。このメッセージはあなたが持っている例外からのものです。 flushModeに直接接続されていません。この例外をスローする可能性がある操作をいくつか行います。たとえば、読み取り専用トランザクションで更新クエリを実行しようとするとします。この例外をスローするdao/serviceメソッドをチェックして、内部で行うことを試みる操作に対して正しいトランザクション構成を確認してください。

関連する問題