我刚刚开始使用hibernate,我总是得到这个错误:
错误:HHH000388:不成功:创建表User(id bigint not null auto_increment,mail varchar(255),passwort varchar(255),primary key(id)) 错误:从存储引擎获得错误-1
这是我的映射类:
package Entities;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class User
{
private long id;
private String mail;
private String passwort;
@Id
@GeneratedValue
@Column(name="id")
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
@Column(name="mail")
public String getMail() {
return mail;
}
public void setMail(String mail) {
this.mail = mail;
}
@Column(name="passwort")
public String getPasswort() {
return passwort;
}
public void setPasswort(String passwort) {
this.passwort = passwort;
}
}
答案 0 :(得分:0)
这是hibernate配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/mysql?zeroDateTimeBehavior=convertToNull</property>
<property name="hibernate.connection.username">root</property>
<property name="connection.pool_size">1</property>
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">update</property>
</session-factory>
</hibernate-configuration>
答案 1 :(得分:0)
我不知道为什么,但我有同样的问题。然后我只需用@Table(name =&#34; Users&#34;)注释更改表的名称,它就开始工作了。
所以尝试改变这一点 @实体 公共类用户 { }
到此:
@Entity @table(名称=&#34;用户&#34) 公共类用户 { }
答案 2 :(得分:0)
@Entity /* It will map POJO class with DB Table i,e. Hibernate mapping */
@Table() /* Create Table in DB */
public class User {
}
@Entity /* It will map POJO class with DB Table i,e. Hibernate mapping */
@Table(name="F2CUSER") /* Create Table in DB */
public class User {
}
这里我用过@Table(name="F2CUSER")
,它对我有用
答案 3 :(得分:0)
这是因为“用户”是保留关键字。您应该更改表名。
下面的注解是这个问题的解决方案。
@Table(name = "users")