2015-09-24 4 views
0

Я вставляю данные в базу данных с помощью Spring MVC и Hibernate, но когда я впервые запускаю свой проект, он не генерирует таблицы, используя спящий режим.Не создавая таблицу с использованием Hibernate

Мой Entity Класс:

package com.cts.entity; 

import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id; 
import javax.persistence.Table; 


@Entity 
@Table(name="RegistrationDetails") 
public class RegistrationDetails 
{ 
    @Id 
    @GeneratedValue(strategy=GenerationType.IDENTITY) 
    @Column 
    private String RegistrationId; 

    @Column 
    private String firstname; 
    @Column 
    private String lastname; 
    @Column 
    private String address; 
    @Column 
    private String emailid; 
    @Column 
    private String password; 
    @Column 
    private Long contactno; 

    public String getRegistrationId() { 
     return RegistrationId; 
    } 
    public void setRegistrationId(String registrationId) { 
     RegistrationId = registrationId; 
    } 


    public String getFirstname() { 
     return firstname; 
    } 
    public void setFirstname(String firstname) { 
     this.firstname = firstname; 
    } 
    public String getLastname() { 
     return lastname; 
    } 
    public void setLastname(String lastname) { 
     this.lastname = lastname; 
    } 
    public String getAddress() { 
     return address; 
    } 
    public void setAddress(String address) { 
     this.address = address; 
    } 
    public String getEmailid() { 
     return emailid; 
    } 
    public void setEmailid(String emailid) { 
     this.emailid = emailid; 
    } 
    public String getPassword() { 
     return password; 
    } 
    public void setPassword(String password) { 
     this.password = password; 
    } 
    public Long getContactno() { 
     return contactno; 
    } 
    public void setContactno(Long contactno) { 
     this.contactno = contactno; 
    } 


} 

Мой грузоотправитель Servlet:

<?xml version="1.0" encoding="UTF-8"?><beans 
    xsi:schemaLocation="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.xsd 
    http://www.springframework.org/schema/tx 
    http://www.springframework.org/schema/tx/spring-tx.xsd 
    http://www.springframework.org/schema/mvc 
    http://www.springframework.org/schema/mvc/spring-mvc.xsd 
    http://www.springframework.org/schema/aop 
    http://www.springframework.org/schema/aop/spring-aop.xsd" 

    xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" 
    xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://www.springframework.org/schema/beans"> 
     <mvc:annotation-driven /> 
    <context:annotation-config /> 

    <context:component-scan base-package="com.cts.*" /> 

    <aop:aspectj-autoproxy /> 

    <mvc:resources location="/" mapping="/**" /> 
    <tx:annotation-driven proxy-target-class="true" /> 
    <bean class="org.springframework.jdbc.datasource.DriverManagerDataSource" 
     id="DataSource"> 

     <property value="com.mysql.jdbc.Driver" name="driverClassName" /> 

     <property value="jdbc:mysql://localhost:3306/opop" 
      name="url" /> 

     <property value="root" name="username" /> 

     <property value="root" name="password" /> 

    </bean> 

    <!-- <bean id="multipartResolver" 
     class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
     setting maximum upload size 
     <property name="maxUploadSize" value="1000000000" /> 
    </bean> --> 

    <bean 
     class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" 
     id="newSessionFactory"> 
     <property name="dataSource" ref="DataSource" /> 
     <property name="annotatedClasses"> 

      <list> 
       <value>com.cts.entity.RegistrationDetails</value> 
       <value>com.cts.entity.LoginDetails</value> 
       <value>com.cts.entity.RegisterationDetails</value> 

      </list> 

     </property> 
     <property name="hibernateProperties"> 

      <props> 

       <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> 

       <prop key="hibernate.hbm2ddl.auto">update</prop> 

       <prop key="hibernate.show_sql">true</prop> 
      </props> 
     </property> 
    </bean> 
    <bean class="org.springframework.orm.hibernate3.HibernateTransactionManager" 
     id="transactionManager"> 

     <property name="sessionFactory" ref="newSessionFactory" /> 

    </bean> 

    <bean id="h" class="org.springframework.orm.hibernate3.HibernateTemplate" 
     autowire="constructor" /> 
    <bean 
     class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="prefix" value="/WEB-INF/views/" /> 
     <property name="suffix" value=".jsp" /> 
    </bean> 
    <!-- <bean id="messageSource" 
     class="org.springframework.context.support.ResourceBundleMessageSource"> 
     <property name="basename" value="message" /> 
    </bean> --> 


</beans> 


Hibernate not generating tables.I am inserting data into database using Spring MVC and Hibernate but when i am first time running my project its not generating tables using hibernate. 

ответ

0

В hibernateProperties, установить свойство hibernate.hbm2ddl.auto создать падение

<property name="hibernateProperties"> 

      <props> 

       <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> 

       <prop key="hibernate.hbm2ddl.auto">create-drop</prop> 

       <prop key="hibernate.show_sql">true</prop> 
      </props> 
     </property> 

Это будет создайте таблицы при первом запуске приложения. В следующем запуске вы можете установить свойство для обновления, если вы обновляете существующие таблицы. Но в случае, если вы добавите новую таблицу, вам нужно снова дать create-drop.

+0

Gaurav Я изменил его n теперь m получая эту ошибку- java.lang.ClassNotFoundException: com.cts.entity.RegistrationDetails –

0

Попробуйте изменить

<context:component-scan base-package="com.cts.*" /> к <context:component-scan base-package="com.cts" />.

Вам также может понадобиться

<tx:annotation-driven transaction-manager="transactionManager" />. 

Просто добавить в ответ, данный Gaurov, hibernate.hbm2ddl.auto установлен на "обновление" будет создавать новый таблицы для ваших новых объектов (которые еще не находятся на db), создание-падение приведет к их удалению после остановки приложения.

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