2015-03-12 3 views
0

Я следую учебнику https://www.youtube.com/watch?v=F9o-0N7tMg8&list=PLmcxdcWPhFqMq2BctGktOcIJKUw23wJeh&index=19, чтобы создать веб-сайт в Spring MVC. Учебник использует базу данных HSQL, но я предпочел использовать MySql. Мне удалось получить данные из базы данных, однако я не могу сохранить данные пользователя в базе данных.Spring MVC + Hibernate

Мои конфигурации:

applicationContext.xml:

<context:component-scan base-package="com.coolbreeze.realestate 
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/> 

<!-- Load Hibernate related configuration --> 
<import resource="hibernate-context.xml" /> 

гибернации-context.xml:

<context:property-placeholder location="/WEB-INF/spring.properties" /> 
<!-- Enable annotation style of managing transactions - 
<tx:annotation-driven transaction-manager="transactionManager" /> 
<!-- Declare a datasource that has pooling capabilities--> 
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
<property name="driverClassName" value="${app.jdbc.driverClassName}"/> 
<property name="url" value="${app.jdbc.url}"/> 
<property name="username" value="${app.jdbc.username}"/> 
<property name="password" value="${app.jdbc.password}"/> 
</bean> 
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" 
p:dataSource-ref="dataSource" 
p:configLocation="${hibernate.config}" 
p:packagesToScan="com.coolbreeze.realestate"> 
</bean> 
<!-- Declare a transaction manager--> 
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
    <property name="sessionFactory" ref="sessionFactory"/> 
</bean> 

<bean id="emf" 
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
<property name="packagesToScan" value="com.coolbreeze.realestate.entity" /> 
<property name="dataSource" ref="dataSource" /> 
<property name="persistenceProvider"> 
<bean class="org.hibernate.jpa.HibernatePersistenceProvider"></bean> 
</property> 
</bean> 
<jpa:repositories base-package="com.coolbreeze.realestate.repository" 
entity-manager-factory-ref = "emf" transaction-manager-ref = "transactionManager" /> 

гибернации-cfg.xml:

<hibernate-configuration> 
<session-factory> 
<!-- We're using MySQL database so the dialect needs to MySQL as well--> 
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> 
<!-- Enable this to see the SQL statements in the logs--> 
<property name="show_sql">true</property> 
<property name="use_sql_comments">true</property> 
<!-- This will drop our existing database and re-create a new one. 
    Existing data will be deleted! --> 
<property name="hbm2ddl.auto">update</property> 
</session-factory> 
</hibernate-configuration> 

UserController:

@Controller 
public class UserController { 
@Autowired 
private UserService userService; 

@ModelAttribute("user") 
public User construct(){ 
    return new User(); 
} 
@RequestMapping(value="/register", method=RequestMethod.POST) 
public String doRegister(@ModelAttribute("user") User user){ 
    userService.save(user); 
    return "register"; 
} 

UserService:

@Service 
@Transactional 
public class UserService { 

@Autowired 
private UserRepository userRepository; 

public void save(User user) { 
    userRepository.save(user); 
} 

UserRepository:

public interface UserRepository extends JpaRepository<User, Integer> { 
} 

Пожалуйста, помогите мне, я тоже не в состоянии увидеть SQL запросов в консоли , однако он настроен для отображения в hibern съел конфигурацию xml.

Действительно ценю вас помощью.

Спасибо

+0

Есть ли какая-либо конкретная причина вы причина у вас есть SessionFactory и EntityManagerFactory определены? Если вы не видите выход журнала, попробуйте взять содержимое в файле, подробно описанном здесь: http://www.mkyong.com/logging/log4j-log4j-properties-examples/ и вставить его в новый файл с именем log4j.properties. Если вы используете maven, то создайте это в src/main/resources –

+0

любое исключение stacktrace, которое вы получили в консоли? – Rembo

ответ

Смежные вопросы