Advertisement
Guest User

Untitled

a guest
Aug 3rd, 2016
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.97 KB | None | 0 0
  1. javax.persistence.TransactionRequiredException: No transactional EntityManager available
  2.  
  3. at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:275)
  4. at com.sun.proxy.$Proxy39.merge(Unknown Source)
  5. at ua.javagym.repository.jpa.JpaUserRepositoryImpl.save(JpaUserRepositoryImpl.java:28)
  6. at ua.javagym.service.UserServiceImpl.save(UserServiceImpl.java:23)
  7. at ua.javagym.service.UserServiceImplTest.testSave(UserServiceImplTest.java:32)
  8. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  9. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  10. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  11. at java.lang.reflect.Method.invoke(Method.java:497)
  12. at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
  13. at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
  14. at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
  15. at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
  16. at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:73)
  17. at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:82)
  18. at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:73)
  19. at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
  20. at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:224)
  21. at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:83)
  22. at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
  23. at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
  24. at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
  25. at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
  26. at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
  27. at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
  28. at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:68)
  29. at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
  30. at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:163)
  31. at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
  32. at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
  33. at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234)
  34. at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74)
  35. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  36. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  37. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  38. at java.lang.reflect.Method.invoke(Method.java:497)
  39. at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
  40.  
  41. @ContextConfiguration({
  42. "classpath:spring/spring-app.xml",
  43. "classpath:spring/spring-db.xml",
  44. "classpath:spring/spring-tools.xml"
  45. })
  46. @RunWith(SpringJUnit4ClassRunner.class)
  47. public class UserServiceImplTest {
  48.  
  49. @Autowired
  50. protected UserService userService;
  51.  
  52. @Test
  53. public void testSave() throws Exception {
  54. User user = new User("Usertest", "userMail", "user", new Date(), Role.USER);
  55. userService.save(user);
  56. }
  57.  
  58. @Service
  59. public class UserServiceImpl implements UserService {
  60.  
  61. @Autowired
  62. private UserRepository repository;
  63.  
  64. public User save(User user) {
  65. return repository.save(user);
  66. }
  67.  
  68. @Repository
  69. @Transactional
  70. public class JpaUserRepositoryImpl implements UserRepository {
  71.  
  72. @PersistenceContext
  73. private EntityManager entityManager;
  74.  
  75.  
  76. @Override
  77. @Transactional
  78. public User save(User user) {
  79. if (!user.isNew()){
  80. entityManager.persist(user);
  81. }else entityManager.merge(user);
  82. return user;
  83. }
  84. }
  85.  
  86. <?xml version="1.0" encoding="UTF-8"?>
  87. <beans xmlns="http://www.springframework.org/schema/beans"
  88. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  89. xmlns:context="http://www.springframework.org/schema/context"
  90. xsi:schemaLocation="http://www.springframework.org/schema/beans
  91. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  92. http://www.springframework.org/schema/context
  93. http://www.springframework.org/schema/context/spring-context-3.0.xsd">
  94.  
  95.  
  96. <context:annotation-config/> <!--подключаем использование аннотаций-->
  97. <context:component-scan base-package="ua.javagym.**.service"/>
  98. <context:component-scan base-package="ua.javagym.**.web"/>
  99. <context:component-scan base-package="ua.javagym.**.repository.jpa"/>
  100.  
  101.  
  102. </beans>
  103.  
  104. <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
  105. xmlns:context="http://www.springframework.org/schema/context"
  106. xmlns:jdbc="http://www.springframework.org/schema/jdbc"
  107. xmlns:jee="http://www.springframework.org/schema/jee"
  108. xmlns="http://www.springframework.org/schema/beans" xmlns:tx="http://www.springframework.org/schema/cache"
  109. xsi:schemaLocation="http://www.springframework.org/schema/beans
  110. http://www.springframework.org/schema/beans/spring-beans.xsd
  111. http://www.springframework.org/schema/context
  112. http://www.springframework.org/schema/context/spring-context.xsd
  113. http://www.springframework.org/schema/jdbc
  114. http://www.springframework.org/schema/jdbc/spring-jdbc.xsd
  115. http://www.springframework.org/schema/jee
  116.  
  117. http://www.springframework.org/schema/jee/spring-jee.xsd http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd">
  118.  
  119. <context:annotation-config/>
  120. <tx:annotation-driven />
  121.  
  122. <context:property-placeholder location="classpath:db/mysql/mySQL.properties" system-properties-mode="OVERRIDE"/>
  123.  
  124. <jdbc:initialize-database data-source="dataSource">
  125. <jdbc:script location="${jdbc.initLocation}"/>
  126. <jdbc:script location="${jdbc.dataLocation}"/>
  127. </jdbc:initialize-database>
  128.  
  129. <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  130. <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
  131. <property name="url" value="${jdbc.url}"/>
  132. <property name="username" value="${jdbc.username}"/>
  133. <property name="password" value="${jdbc.password}"/>
  134. </bean>
  135.  
  136. <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
  137. p:dataSource-ref="dataSource"
  138. p:packagesToScan="ua.javagym.model">
  139.  
  140. <property name="jpaPropertyMap">
  141. <map>
  142. <entry key="#{T(org.hibernate.cfg.AvailableSettings).FORMAT_SQL}" value="${hibernate.format_sql}"/>
  143. <entry key="#{T(org.hibernate.cfg.AvailableSettings).USE_SQL_COMMENTS}" value="${hibernate.use_sql_comments}"/>
  144. </map>
  145. </property>
  146.  
  147. <property name="jpaVendorAdapter">
  148. <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"
  149. p:showSql="${jpa.showSql}">
  150. </bean>
  151. </property>
  152. </bean>
  153.  
  154. <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"
  155. p:entityManagerFactory-ref="entityManagerFactory"/>
  156.  
  157. <?xml version="1.0" encoding="UTF-8"?>
  158. <project xmlns="http://maven.apache.org/POM/4.0.0"
  159. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  160. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  161. <modelVersion>4.0.0</modelVersion>
  162.  
  163. <groupId>gym</groupId>
  164. <artifactId>gym</artifactId>
  165. <packaging>war</packaging>
  166. <version>1.0-SNAPSHOT</version>
  167. <build>
  168. <plugins>
  169. <plugin>
  170. <groupId>org.apache.maven.plugins</groupId>
  171. <artifactId>maven-compiler-plugin</artifactId>
  172. <configuration>
  173. <source>1.6</source>
  174. <target>1.6</target>
  175. </configuration>
  176. </plugin>
  177. </plugins>
  178. </build>
  179.  
  180. <properties>
  181. <logback.version>1.1.2</logback.version>
  182. <slf4j.version>1.7.7</slf4j.version>
  183. <junit.version>4.12</junit.version>
  184. <spring.test>4.1.6.RELEASE</spring.test>
  185. <spring.jdbc>4.1.6.RELEASE</spring.jdbc>
  186. <spring.version>4.1.6.RELEASE</spring.version>
  187. <spring.orm>4.1.6.RELEASE</spring.orm>
  188. <spring-data-jpa.version>1.9.0.RELEASE</spring-data-jpa.version>
  189. <hibernate.version>5.1.0.Final</hibernate.version>
  190. <hibernate.validator>5.1.0.Final</hibernate.validator>
  191. <ehcache.version>2.10.1</ehcache.version>
  192.  
  193. </properties>
  194.  
  195.  
  196. <dependencies>
  197. <!-- http://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
  198. <dependency>
  199. <groupId>ch.qos.logback</groupId> <!--реализация API slf4j-->
  200. <artifactId>logback-classic</artifactId>
  201. <version>${logback.version}</version>
  202. <scope>compile</scope>
  203. </dependency>
  204. <!-- http://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
  205. <dependency>
  206. <groupId>org.slf4j</groupId>
  207. <artifactId>slf4j-api</artifactId>
  208. <version>${slf4j.version}</version>
  209. </dependency>
  210. <!-- http://mvnrepository.com/artifact/org.slf4j/jcl-over-slf4j -->
  211. <dependency>
  212. <groupId>org.slf4j</groupId>
  213. <artifactId>jcl-over-slf4j</artifactId>
  214. <version>${slf4j.version}</version>
  215. </dependency>
  216. <!-- http://mvnrepository.com/artifact/javax.servlet/servlet-api -->
  217. <dependency>
  218. <groupId>javax.servlet</groupId>
  219. <artifactId>servlet-api</artifactId>
  220. <version>2.5</version>
  221. <scope>provided</scope>
  222. </dependency>
  223. <dependency>
  224. <groupId>javax.servlet</groupId>
  225. <artifactId>jstl</artifactId>
  226. <version>1.2</version>
  227. </dependency>
  228. <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
  229. <dependency>
  230. <groupId>org.springframework</groupId>
  231. <artifactId>spring-context</artifactId>
  232. <version>${spring.version}</version>
  233. <exclusions>
  234. <exclusion>
  235. <groupId>commons-logging</groupId>
  236. <artifactId>commons-logging</artifactId>
  237. </exclusion>
  238. </exclusions>
  239. </dependency>
  240. <!-- https://mvnrepository.com/artifact/junit/junit -->
  241. <dependency>
  242. <groupId>junit</groupId>
  243. <artifactId>junit</artifactId>
  244. <version>${junit.version}</version>
  245. </dependency>
  246. <!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
  247. <dependency>
  248. <groupId>org.springframework</groupId>
  249. <artifactId>spring-test</artifactId>
  250. <version>${spring.test}</version>
  251. </dependency>
  252. <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
  253. <dependency>
  254. <groupId>org.springframework</groupId>
  255. <artifactId>spring-jdbc</artifactId>
  256. <version>${spring.jdbc}</version>
  257. </dependency>
  258. <!-- https://mvnrepository.com/artifact/org.springframework/spring-orm -->
  259. <dependency>
  260. <groupId>org.springframework</groupId>
  261. <artifactId>spring-orm</artifactId>
  262. <version>${spring.orm}</version>
  263. </dependency>
  264. <dependency>
  265. <groupId>org.springframework.data</groupId>
  266. <artifactId>spring-data-jpa</artifactId>
  267. <version>${spring-data-jpa.version}</version>
  268. </dependency>
  269. <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
  270. <dependency>
  271. <groupId>mysql</groupId>
  272. <artifactId>mysql-connector-java</artifactId>
  273. <version>5.1.38</version>
  274. </dependency>
  275. <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager -->
  276. <dependency>
  277. <groupId>org.hibernate</groupId>
  278. <artifactId>hibernate-entitymanager</artifactId>
  279. <version>${hibernate.version}</version>
  280. </dependency>
  281.  
  282. <dependency>
  283. <groupId>org.hibernate</groupId>
  284. <artifactId>hibernate-java8</artifactId>
  285. <version>${hibernate.version}</version>
  286. </dependency>
  287. <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-validator -->
  288. <dependency>
  289. <groupId>org.hibernate</groupId>
  290. <artifactId>hibernate-validator</artifactId>
  291. <version>${hibernate.validator}</version>
  292. </dependency>
  293. <dependency>
  294. <groupId>javax.transaction</groupId>
  295. <artifactId>jta</artifactId>
  296. <version>1.1</version>
  297. <scope>runtime</scope>
  298. </dependency>
  299. <dependency>
  300. <groupId>net.sf.ehcache</groupId>
  301. <artifactId>ehcache</artifactId>
  302. <version>${ehcache.version}</version>
  303. </dependency>
  304. <dependency>
  305. <groupId>javax.el</groupId>
  306. <artifactId>javax.el-api</artifactId>
  307. <version>2.2.5</version>
  308. </dependency>
  309. <dependency>
  310. <groupId>org.springframework</groupId>
  311. <artifactId>spring-context-support</artifactId>
  312. <version>${spring.version}</version>
  313. <exclusions>
  314. <exclusion>
  315. <groupId>commons-logging</groupId>
  316. <artifactId>commons-logging</artifactId>
  317. </exclusion>
  318. </exclusions>
  319. </dependency>
  320. </dependencies>
  321.  
  322. @Entity
  323. @Table(name = "users")
  324. @NamedQueries({
  325. @NamedQuery(name = User.DELETE, query = "delete from User u where u.id=:id"),
  326. @NamedQuery(name = User.GET_ALL, query = "select u from User u")
  327. })
  328. public class User extends NamedEntity{
  329. public static final String DELETE = "User.delete";
  330. public static final String GET_ALL = "User.getAlL";
  331.  
  332. @Column(name = "email")
  333. private String email;
  334.  
  335. @Column(name = "password")
  336. private String password;
  337.  
  338. @Column(name = "enabled")
  339. private boolean enabled = true;
  340.  
  341. @Column(name = "registered")
  342. private Date registered = new Date();
  343.  
  344. @Enumerated(EnumType.ORDINAL)
  345. @Column(name = "role_id")
  346. private Role role;
  347.  
  348. public User() {
  349. }
  350.  
  351. public User(String name, String email, String password, Date registered, Role role) {
  352. super(name);
  353. this.email = email;
  354. this.password = password;
  355. this.enabled = true;
  356. this.registered = registered;
  357. this.role = role;
  358. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement