[英]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;
}
}
<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>
<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.xml
或spring.xml
文件中。
注釋@Size(min = 1, max = 50)
用於集合,請修復它。
從我的角度來看,這可能是您無權創建表的原因,這可能是因為您之前沒有創建數據庫。 因此,手動創建數據庫。
那么可能是您沒有創建表的權限,因此向數據庫用戶授予適當的權限將可以解決此問題。
最后,我認為這是因為您省略了休眠屬性<propertyname="hibernate.hbm2ddl.auto">update</property>
否則無法從類路徑讀取您的屬性文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.