帮助设置休眠的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.
我只是很困惑如何设置冲洗属性。
<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>
最佳答案
正确的是<property name="org.hibernate.flushMode" value="COMMIT"/>
。
但是您的问题不是flushMode的正确值。此消息来自您所拥有的异常。它没有直接连接到flushMode。您执行了一些可能会引发此异常的操作。例如:您可以尝试使用只读事务执行一些更新查询。检查引发此异常的dao / service方法,以获取正确的事务配置,以尝试在内部执行的操作。