· 8 years ago · Dec 03, 2017, 03:42 PM
1<?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xmlns:context="http://www.springframework.org/schema/context"
5 xmlns:jdbc="http://www.springframework.org/schema/jdbc"
6 xsi:schemaLocation="http://www.springframework.org/schema/beans
7 http://www.springframework.org/schema/beans/spring-beans.xsd
8 http://www.springframework.org/schema/context
9 http://www.springframework.org/schema/context/spring-context.xsd
10 http://www.springframework.org/schema/jdbc
11 http://www.springframework.org/schema/jdbc/spring-jdbc.xsd">
12
13<!-- XML Bean Definitions -->
14<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
15 <property name="driverClassName" value="org.h2.Driver" />
16 <property name="url" value="jdbc:h2:mem://localhost/test" />
17 <property name="username" value="sa" />
18 <property name="password" value="" />
19</bean>
20
21<!-- initialize Embedded DataSource. Ð’ÑÑ‚Ñ€Ð¾ÐµÐ½Ð½Ð°Ñ Ð±Ð°Ð·Ð° данных-->
22<jdbc:initialize-database data-source="dataSource">
23 <jdbc:script location="classpath:dbschema.sql"/>
24 <jdbc:script location="classpath:test-data.sql"/>
25</jdbc:initialize-database>
26
27<!--Do not forget activate @Transactional JPA annotation with <annotation-driven/>-->
28<!-- JPA Persistence Context and EntityManager configuration -->
29<bean id="entityManagerFactory"
30 class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" >
31 <!--packagesToScan - search Entity and mapping them -->
32 <property name="packagesToScan" value="main" />
33 <property name="dataSource" ref="dataSource" />
34 <property name="jpaVendorAdapter">
35 <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" >
36 <property name="generateDdl" value="true" />
37 <property name="showSql" value="true" />
38 </bean>
39 </property>
40 <property name="jpaProperties">
41 <props>
42 <prop key="hibernate.dialect">org.hibernate.dialect.H2Dialect</prop>
43 <prop key="hibernate.show_sql">true</prop>
44 <prop key="hibernate.format_sql">false</prop>
45 <prop key="hibernate.hbm2ddl.auto">update</prop>
46 </props>
47 </property>
48</bean>
49
50<!-- Automatic Transaction Participation-->
51<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
52 <property name="entityManagerFactory" ref="entityManagerFactory" />
53</bean>
54
55@Repository
56 @Transactional
57 public class ORMService {
58
59@PersistenceContext
60private EntityManager entityManager;
61
62public List<User> queryFindAllUsersJPA() {
63 System.out.println("ORMService queryfindAllUsersJPA is called");
64 String query = "from User";
65 TypedQuery<User> typedQuery = entityManager.createQuery(query, User.class);
66 return typedQuery.getResultList();
67}
68
69
70}
71
72@Entity
73 @Table(name = "USER")
74 public class User {
75
76@Id
77@GeneratedValue(strategy = GenerationType.IDENTITY)
78@Column(name = "IDUSER")
79private int idUser;
80
81@NotEmpty
82@Size(min = 5, max = 20)
83@Column(name = "USERNAME")
84private String username;
85
86@NotEmpty
87@Size(min=5, max=20)
88@Column(name="PASSWORD")
89private String password;
90
91@Column(name="ENABLED")
92private boolean enabled;
93
94public int getIdUser() {
95 return idUser;
96}
97
98public void setIdUser(int idUser) {
99 this.idUser = idUser;
100}
101
102public String getUsername() {
103 return username;
104}
105
106public void setUsername(String username) {
107 this.username = username;
108}
109
110public String getPassword() {
111 return password;
112}
113
114public void setPassword(String password) {
115 this.password = password;
116}
117
118public boolean isEnabled() {
119 return enabled;
120}
121
122public void setEnabled(boolean enabled) {
123 this.enabled = enabled;
124}
125
126@Override
127public String toString() {
128 return "User{" +
129 "idUser=" + idUser +
130 ", username='" + username + ''' +
131 ", password='" + password + ''' +
132 ", enabled=" + enabled +
133 '}';
134}
135}
136
137DROP TABLE IF EXISTS USER;
138
139 --USER TABLE
140CREATE TABLE IF NOT EXISTS USER (
141IDUSER INT NOT NULL AUTO_INCREMENT,
142USERNAME VARCHAR(255) NOT NULL ,
143PASSWORD VARCHAR(255) NOT NULL,
144ENABLED BOOLEAN NOT NULL,PRIMARY KEY(IDUSER)
145);
146
147@RestController
148public class MainController {
149
150@Autowired
151private ORMService ormService;
152
153@GetMapping(value = "/")
154public ModelAndView getAllUsers() {
155 System.out.println("ORMController ormFindAllUsers is called");
156 List<User> users = ormService.queryFindAllUsersJPA();
157 return new ModelAndView("index", "resultObject", users);
158}
159}
160
161ORMController ormFindAllUsers is called
162 ORMService queryfindAllUsersJPA is called
163 03-Dec-2017 18:18:43.982 INFO [http-nio-8080-exec-1]
164 org.hibernate.hql.internal.QueryTranslatorFactoryInitiator.initiateService
165 HHH000397: Using ASTQueryTranslatorFactory
166 03-Dec-2017 18:18:44.216 WARN [http-nio-8080-exec-1]
167 org.hibernate.engine.jdbc.spi.SqlExceptionHelper.logExceptions SQL
168 Error: 42102, SQLState: 42S02
169 03-Dec-2017 18:18:44.216 ERROR [http-nio-8080-exec-1]
170 org.hibernate.engine.jdbc.spi.SqlExceptionHelper.logExceptions Таблица
171 "USER" не найдена
172 Table "USER" not found; SQL statement:
173 select user0_.IDUSER as IDUSER1_0_, user0_.ENABLED as ENABLED2_0_,
174 user0_.PASSWORD as PASSWORD3_0_, user0_.USERNAME as USERNAME4_0_ from
175 USER user0_ [42102-196]
176 Hibernate: select user0_.IDUSER as IDUSER1_0_, user0_.ENABLED as
177 ENABLED2_0_, user0_.PASSWORD as PASSWORD3_0_, user0_.USERNAME as
178 USERNAME4_0_ from USER user0_