使用hibernate注释时不创建数据库表

时间:2013-06-26 06:56:00

标签: java hibernate spring-mvc

我是spring mvc的新手,我正在尝试使用注释创建db表。但是当我使用hbm.xml它没有创建它正常工作。 请帮我。任何帮助都是适合的。

我的表格编码是: -

    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.Table;
    import javax.validation.constraints.Size;
    import org.hibernate.validator.constraints.NotEmpty;
    @Entity
    @Table(name = "LOGIN_MASTER")
    public class LoginForm {
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private long Id;
        @NotEmpty
        @Size(min = 1, max = 50)
        @Column(name = "userName")
        private String userName;
        @NotEmpty
        @Size(min = 1, max = 20)
        @Column(name = "password")
        private String password;

        public void setUserName(String userName) {
            this.userName = userName;
        }

        public String getUserName() {
            return userName;
        }

        public void setPassword(String password) {
            this.password = password;
        }

        public String getPassword() {
            return password;
        }

        public long getId() {
            return Id;
        }

        public void setId(long id) {
            Id = id;
        }

    }

hibernate.cfg.xml中

<session-factory>
 <property name="hibernate.connection.driver_class"> com.mysql.jdbc.Driver</property> 
 <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/spring3login</property> 
 <property name="hibernate.connection.username">root</property>
 <property name="connection.password">root</property>
 <property name="connection.pool_size">1</property>
 <property name="hibernate.dialect"> org.hibernate.dialect.HSQLDialect </property>
 <property name="show_sql">true</property>
 <property name="hibernate.hbm2ddl.auto">create</property>

spring.xml

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
     <property name="prefix"> <value>/WEB-INF/views/</value> </property> 
     <property name="suffix"> <value>.jsp</value> </property>
</bean>

3 个答案:

答案 0 :(得分:1)

我想你忘了在hibernate.cfg.xml中添加属性

<property name="hibernate.hbm2ddl.auto">update</property>

如果架构不可用则通过此属性创建一个,另一方面它只是更新或插入值。此属性可以添加到hibernate.cfg.xmlspring.xml文件中。

答案 1 :(得分:0)

注释@Size(min = 1, max = 50)它是集合的,请修复它。

答案 2 :(得分:0)

从我的角度来看,这可能是你没有权限创建表的原因,这可能是你没有提前创建数据库。所以手动创建数据库。

然后可能是您没有权限创建表,因此为数据库用户授予适当的权限将解决此问题。

最后,我认为这是因为你省略了hibernate属性<propertyname="hibernate.hbm2ddl.auto">update</property>
或者您的属性文件无法从类路径中读取。