powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Exception - save is not valid without active transaction
7 сообщений из 7, страница 1 из 1
Exception - save is not valid without active transaction
    #38993174
goldenhawk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не могу разобраться с такой проблемой.
Нужно сделать транзакции, используя @Transactional.

При создании нового курса(или любого метода) вылетает ексепшн save is not valid without active transaction.

Помогите разобраться в чем причина.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
public interface CoursesDAO {
	 
	public Course createCourse(Course course);

	public Course findCourseById(Integer key);

	public Course updateCourse(Course course);

	public void deleteCourse(Course course);

	public List<Course> getAllCourses();
	
	public List<Course> getAllCoursesByCategory(String category);
	
	public List<Course> getAllCoursesWhichNoProposal( );
	
}




Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
@Repository
public class CoursesDAOImpl implements CoursesDAO {
 
	 @Autowired
 	 private SessionFactory sessionFactory;
	 
	public Course createCourse(Course course) {
		
		Session session = sessionFactory.getCurrentSession();
		Integer id = (Integer) session.save(course);
		course.setId(id);
        	return course;
	};
	 
	public Course findCourseById(Integer id) {
		
		Session session = sessionFactory.getCurrentSession();
		Course course = (Course) session.get(Course.class, id);
		return course;
	}

	 
	public Course updateCourse(Course course) {
		
		Session session = sessionFactory.getCurrentSession();
		session.merge(course);
		return course;
	};
	 
	public void deleteCourse(Course course) {
		
		Session session = sessionFactory.getCurrentSession();
		session.delete(course);
		
	};
	 
	public List<Course> getAllCourses() {
	 	
		Session session = sessionFactory.getCurrentSession();
		List listCourses = session.createQuery("from Course").list();
		return listCourses;
	}

 
	 
	public List<Course> getAllCoursesByCategory(String category) {
	 	 
		Session session = sessionFactory.getCurrentSession();
		List listCoursesByCategory = session.createQuery("from Course c where c.category='"+category+"'").list();
		return listCoursesByCategory;
	}
	
	 
	public List<Course> getAllCoursesWhichNoProposal( ) {
	 	 
		Session session = sessionFactory.getCurrentSession();
		List listCoursesNoProposal = session.createQuery("from Course c where c.state not like 'Proposal' and c.state not like 'Rejected'").list();
		return listCoursesNoProposal;
	}
		
}




Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public interface CourseService {

	public Course findCourseById(Integer id);
	public Course updateCourse(Course course);
	public Course createCourse(Course course);
	public void deleteCourse(Course course,User user) throws AddressException, Exception;
	public List<Course> getAllCourses();
	public List<Course> getAllCoursesByCategory(String category);
	public List<Course> getAllCoursesWhichNoProposal( );
	
}





Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
@Service
public class CourseServiceImpl implements CourseService {
	@Autowired
	private CoursesDAO coursesDAOImpl;
	@Autowired
	private UserService userService;
	@Autowired
	private ManagerCourseService managerCourseService;
	@Autowired
	private MailService mail;
	@Resource(name = "freemarkerEmailConfig")
    private Configuration emailConfiguration;
	@Transactional 
	public Course findCourseById(Integer id) {

		Course course = coursesDAOImpl.findCourseById(id);

		return course;
	}
	@Transactional 
	public Course updateCourse(Course course) {

		course = coursesDAOImpl.updateCourse(course);
		
		return course;
	}
	@Transactional 
	public Course createCourse(Course course) {

		course = coursesDAOImpl.createCourse(course);
		
		return course;
	}
	@Transactional 
	public List<Course> getAllCourses() {

		List<Course> listCourses = coursesDAOImpl.getAllCourses();
		
		return listCourses;
	}
	@Transactional 
	public List<Course> getAllCoursesByCategory(String category) {

		List<Course> listCoursesByCategory = coursesDAOImpl
				.getAllCoursesByCategory(category);
	
		return listCoursesByCategory;
	}
	@Transactional 	
	public List<Course> getAllCoursesWhichNoProposal( ) {

		List<Course> listCoursesNoProposal = coursesDAOImpl
				.getAllCoursesWhichNoProposal( );
		
		return listCoursesNoProposal;
	}
	@Transactional 
	public void deleteCourse(Course course,User user) throws AddressException, Exception{
			 
		 Map<String,Object> templateVarsCourseDeleted=new HashMap<String,Object>();
		 templateVarsCourseDeleted.put("LecturerName",user.getLogin());
		 templateVarsCourseDeleted.put("CourseName",course.getName());
		 templateVarsCourseDeleted.put("CourseCategory",course.getCategory());
		 templateVarsCourseDeleted.put("CourseDescription",course.getDescription());
		 templateVarsCourseDeleted.put("CourseLinks",course.getLinks());
		 templateVarsCourseDeleted.put("ManagerDecision1",managerCourseService.findRecordAboutCourseByIdCourse(course.getId()).getDecisionDepartmentManager());
		 templateVarsCourseDeleted.put("ManagerReason1",managerCourseService.findRecordAboutCourseByIdCourse(course.getId()).getReasonDepartmentManager()); 
		 templateVarsCourseDeleted.put("ManagerDecision2",managerCourseService.findRecordAboutCourseByIdCourse(course.getId()).getDecisionKnowledgeManager()); 
		 templateVarsCourseDeleted.put("ManagerReason2",managerCourseService.findRecordAboutCourseByIdCourse(course.getId()).getReasonKnowledgeManager()); 
		 
		 String bodyCourseDeleted =	FreeMarkerTemplateUtils.processTemplateIntoString(emailConfiguration.getTemplate("CourseDeleted.ftl"),templateVarsCourseDeleted);
				 
	 //	mail.sendMail(new InternetAddress("dima4nolimit@mail.ru"), new InternetAddress(managerCourseService.findRecordAboutCourseByIdCourse(courseId).getDepartmentManager()), "Course Deleted", bodyCourseDeleted);
	 
		coursesDAOImpl.deleteCourse(course);
		
	};

}




Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
<?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:context="http://www.springframework.org/schema/context"
	xmlns:security="http://www.springframework.org/schema/security"
	xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
		http://www.springframework.org/schema/aop  http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
		http://www.springframework.org/schema/tx  http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
	 
	<mvc:annotation-driven />
	 <tx:annotation-driven transaction-manager="transactionManager"/>  
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close"
		p:driverClassName="org.h2.Driver"
		p:url="jdbc:h2:tcp://localhost:9092/~/QWE;INIT=create schema if not exists QWE\;"
		p:username="sa"
		p:password="" />

	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="hibernateProperties">	
		<props>
    <prop key="hibernate.dialect">org.hibernate.dialect.H2Dialect</prop> 
    <prop key="hibernate.show_sql">true</prop> 
    <prop key="hibernate.format_sql">false</prop> 
<!--     <prop key="connection.pool_size">1</prop>  -->
    <prop key="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</prop>
    <prop key="hibernate.current_session_context_class">thread</prop>
    <prop key="hibernate.hbm2ddl.auto">update</prop> 
    <prop key="hibernate.default_schema">QWE</prop>
  </props>	
  	</property>	
		
	<property name="annotatedClasses">
      <list>
        <value>com.epam.edu.jtc.entity.User</value>
        <value>com.epam.edu.jtc.entity.Category</value>
        <value>com.epam.edu.jtc.entity.Course</value>
        <value>com.epam.edu.jtc.entity.UserCourse</value>
        <value>com.epam.edu.jtc.entity.ManagerCourse</value>
         </list>
    </property>
	</bean>		
	
	<!-- FreeMarker Configuration -->
<bean id="freemarkerEmailConfig" class="freemarker.template.Configuration">
    <property name="directoryForTemplateLoading" value="WEB-INF/pages/templates" />
    <property name="objectWrapper">
        <bean class="freemarker.template.DefaultObjectWrapper"/>
    </property>
   
</bean>

	<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
     <property name="sessionFactory" ref="sessionFactory" />
</bean>
	
	<context:component-scan base-package="com.epam.edu.jtc" />
	
</beans>



Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.epam.edu.jtc</groupId>
  <artifactId>training-center-dkh</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>training-center Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>4.0.9.RELEASE</version>
		</dependency>
 
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>4.0.9.RELEASE</version>
		</dependency>
    
    
    <dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>4.0.9.RELEASE</version>
		</dependency>
		
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>2.5</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>jstl</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>

		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
			<version>4.3.8.Final</version>
		</dependency>

		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.7.12</version>
		</dependency>
		<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
		
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>tck-utils-api</artifactId>
			<version>0.9.1</version>
		</dependency>

		<dependency>
			<groupId>com.h2database</groupId>
			<artifactId>h2</artifactId>
			<version>1.3.176</version>
		</dependency>
		<dependency>
			<groupId>org.freemarker</groupId>
			<artifactId>freemarker</artifactId>
			<version>2.3.16</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context-support</artifactId>
			<version>4.0.9.RELEASE</version>
		</dependency>
		<!-- Validation -->
  <dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-validator</artifactId>
   <version>5.1.0.Final</version>
  </dependency>
  <dependency>
   <groupId>javax.validation</groupId>
   <artifactId>validation-api</artifactId>
   <version>1.1.0.Final</version>
  </dependency>
  <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.0.9.RELEASE</version>
        </dependency>
 <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>4.0.9.RELEASE</version>
        </dependency>
  <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>4.3.8.Final</version>
        </dependency>
		
		
<!-- 	<dependency> -->
<!--             <groupId>javax.persistence</groupId> -->
<!--             <artifactId>persistence-api</artifactId> -->
<!--             <version>1.0</version> -->
<!--         </dependency>	 -->
		<!-- Spring Security -->
		<dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>4.0.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>4.0.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-core</artifactId>
            <version>4.0.0.RELEASE</version>
        </dependency>
		
		<dependency>
    <groupId>commons-dbcp</groupId>
    <artifactId>commons-dbcp</artifactId>
    <version>1.2.2</version>
</dependency>
		<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-orm</artifactId>
	<version>4.0.9.RELEASE</version>
</dependency>
	<dependency>
	<groupId>javax.annotation</groupId>
	<artifactId>javax.annotation-api</artifactId>
	<version>1.2</version>
</dependency>
	<dependency>
	    <groupId>javax.mail</groupId>
	    <artifactId>mail</artifactId>
	    <version>1.4.3</version>
    </dependency>	
		<dependency>
        <groupId>javax.el</groupId>
        <artifactId>el-api</artifactId>
        <version>2.2</version>
    </dependency>
		<dependency>
    <groupId>org.glassfish.web</groupId>
    <artifactId>el-impl</artifactId>
    <version>2.2</version>
</dependency>
		<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-test</artifactId>
	<version>4.1.1.RELEASE</version>
</dependency>
		
  </dependencies>
  <build>
    <finalName>training-center</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <version>2.7</version>
        </plugin>
    </plugins>
  </build>
</project>
...
Рейтинг: 0 / 0
Exception - save is not valid without active transaction
    #38993227
yelena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
goldenhawk, а слабо в одну из тем архив проекта выложить? В приведенных кусках кода ничего криминального не заметно.
...
Рейтинг: 0 / 0
Exception - save is not valid without active transaction
    #38993236
yelena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какая-то фигня, видимо, происходит на этапе инициализации контекста. Хоть лог инициализации посмотреть, что ли.
...
Рейтинг: 0 / 0
Exception - save is not valid without active transaction
    #38993262
goldenhawk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
yelenagoldenhawk, а слабо в одну из тем архив проекта выложить? В приведенных кусках кода ничего криминального не заметно.
Могу ли я вам выслать на почту свой проект?
...
Рейтинг: 0 / 0
Exception - save is not valid without active transaction
    #38993591
yelena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
goldenhawkМогу ли я вам выслать на почту свой проект? Можете. Ваш адрес в профиле актуален? Если да, то я напишу вам, а потом вы мне вышлете проект.
...
Рейтинг: 0 / 0
Exception - save is not valid without active transaction
    #38993690
goldenhawk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
yelenagoldenhawkМогу ли я вам выслать на почту свой проект? Можете. Ваш адрес в профиле актуален? Если да, то я напишу вам, а потом вы мне вышлете проект.
Актуален.
...
Рейтинг: 0 / 0
Exception - save is not valid without active transaction
    #38993702
yelena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
goldenhawk, проверьте почту.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Exception - save is not valid without active transaction
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]