升级到Hibernate 5之后-只读模式(FlushMode.MANUAL)不允许写操作

时间:2019-07-09 02:14:48

标签: hibernate-5.x

我正在从Hibernate3升级到Hibernate5。出现上述错误

  

“在只读模式下不允许写操作   (FlushMode.MANUAL)”

每次我尝试在数据库中通过DAo插入新记录(处于集成测试中)。 这是我的XML配置:

 <bean id="txManager"
          lass="org.springframework.orm.hibernate5.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"/>
 </bean>

 <tx:annotation-driven  transaction-manager="txManager"/>

以上是Stackoverflow用户在类似线程中建议的内容,但仍无法正常工作。 当我用@Transactional注释我的DAO时,当我尝试从上下文中读取DAO bean时出现代理异常:

@Transactional
@Repository("clientDao")
public class HibernateClientDao extends HibernateGenericDao<Client, Long> implements ClientDao {

@Transaction将导致此测试语句返回$ Proxy0而不是真实对象,因此Bean转换将失败:

public class HibernateClientDaoIntegrationTest {

    private HibernateClientDao clientDao;

    @Before
    public void setUp() {
        clientDao = (HibernateClientDao) IntegrationTestContext.getContext().getBean("clientDao");
    }

我在DAO上注释@Transactional时遇到的错误是:

  

java.lang.ClassCastException:com.sun.proxy。$ Proxy57无法转换为   mydao.HibernatePolicyDao

0 个答案:

没有答案