Tag: 春季交易

匹配的通配符是严格的,但是对元素“tx:annotation-driven”没有声明。

我正在尝试configurationJSF + Spring + hibernate,而我试图运行一个testing,但是当我在application-context.xml文件中使用这个“tx:annotation-driven”时,出现这个错误: 匹配的通配符是严格的,但是对元素“tx:annotation-driven”没有声明。 这是我的application-context.xml: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.6.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.6.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.6.xsd " xmlns:tool="http://www.springframework.org/schema/tool"> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="oracle.jdbc.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@192.168.56.101:1521:Gpsi"/> <property name="username" value="omar"/> <property name="password" value="omar"/> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="annotatedClasses"> <list> <value>om.mycompany.model.Course</value> <value>om.mycompany.model.Student</value> <value>om.mycompany.model.Teacher</value> </list> […]

Spring事务和hibernate.current_session_context_class

我有一个使用Hibernate 4和Spring事务的Spring 3.2应用程序。 所有的方法工作得很好,我可以正确访问数据库来保存或检索实体。 然后,我介绍了一些multithreading,并且由于每个线程都访问数据库,我从Hibernate获得以下错误: org.hibernate.HibernateException: Illegal attempt to associate a collection with two open sessions 我从网上读到,我必须添加<prop key="hibernate.current_session_context_class">thread</prop>到我的Hibernateconfiguration,但现在每次我尝试访问数据库我得到: org.hibernate.HibernateException: saveOrUpdate is not valid without active transaction 然而,我的服务方法是用@Transactional注释的,并且在添加<prop key="hibernate.current_session_context_class">thread</prop>之前,所有工作都正常。 为什么没有交易,虽然方法用@Transactional注释? 我该如何解决这个问题? 这里是我的Hibernateconfiguration(包括会话上下文属性): <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd"> <!– Hibernate session factory –> <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" > <property name="dataSource" > […]