帮助设置休眠的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方法,以获取正确的事务配置,以尝试在内部执行的操作。

07-25 23:57