簡體   English   中英

使用休眠注釋時未創建數據庫表

[英]Database table not creating while using hibernate annotation

我是Spring MVC的新手,我正在嘗試使用注釋制作數據庫表。 但是當我使用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>

我認為您忘記在hibernate.cfg.xml中添加屬性

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

通過該屬性,如果架構不可用,它將創建一個,否則將僅更新或插入該值。可以將該屬性添加到hibernate.cfg.xmlspring.xml文件中。

注釋@Size(min = 1, max = 50)用於集合,請修復它。

從我的角度來看,這可能是您無權創建表的原因,這可能是因為您之前沒有創建數據庫。 因此,手動創建數據庫。

那么可能是您沒有創建表的權限,因此向數據庫用戶授予適當的權限將可以解決此問題。

最后,我認為這是因為您省略了休眠屬性<propertyname="hibernate.hbm2ddl.auto">update</property>
否則無法從類路徑讀取您的屬性文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM