我正在从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