Hibernate无法创建表

时间:2014-07-08 19:03:04

标签: mysql hibernate

我刚刚开始使用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;
}


}

4 个答案:

答案 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")