我是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;
}
}
<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>
答案 0 :(得分:1)
我想你忘了在hibernate.cfg.xml中添加属性
<property name="hibernate.hbm2ddl.auto">update</property>
如果架构不可用则通过此属性创建一个,另一方面它只是更新或插入值。此属性可以添加到hibernate.cfg.xml
或spring.xml
文件中。
答案 1 :(得分:0)
注释@Size(min = 1, max = 50)
它是集合的,请修复它。
答案 2 :(得分:0)
从我的角度来看,这可能是你没有权限创建表的原因,这可能是你没有提前创建数据库。所以手动创建数据库。
然后可能是您没有权限创建表,因此为数据库用户授予适当的权限将解决此问题。
最后,我认为这是因为你省略了hibernate属性<propertyname="hibernate.hbm2ddl.auto">update</property>
或者您的属性文件无法从类路径中读取。