帮助设置hibernate的flush属性。
我收到以下错误。
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.
我很困惑如何设置flush属性。
<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 :(得分:1)
正确是<property name="org.hibernate.flushMode" value="COMMIT"/>
。
但是你的问题是flushMode的值不正确。此消息来自您的例外。它没有直接连接到flushMode。您执行一些可能会引发此异常的操作。例如:您可以尝试使用只读事务执行某些更新查询。对于您尝试在其中进行的操作,请检查抛出此异常的dao / service方法以获取正确的事务配置。