Java 字段';Id#u员工';不';没有默认值

Java 字段';Id#u员工';不';没有默认值,java,mysql,hibernate,jdbc,Java,Mysql,Hibernate,Jdbc,我不明白为什么我的应用程序删除异常“Id\u employeer”字段没有默认值 Id\u employeer是我的主键,当我尝试将任何信息保存到我的数据库时,我遇到了异常,但是,当我尝试从数据库读取信息时,它工作了 我阅读了StackOverflow的主题,但我仍然不理解我应用程序中的答案。我正在使用Hibernate 5.2.11 MyCharacterInfo.hbm.xml: <?xml version="1.0"?> <!-- ~ Hibernate,

我不明白为什么我的应用程序删除异常“Id\u employeer”字段没有默认值

Id\u employeer
是我的主键,当我尝试将任何信息保存到我的数据库时,我遇到了异常,但是,当我尝试从数据库读取信息时,它工作了

我阅读了StackOverflow的主题,但我仍然不理解我应用程序中的答案。我正在使用Hibernate 5.2.11

My
CharacterInfo.hbm.xml

    <?xml version="1.0"?>

<!--
  ~ Hibernate, Relational Persistence for Idiomatic Java
  ~
  ~ License: GNU Lesser General Public License (LGPL), version 2.1 or later.
  ~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
  -->
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

    <class name="CharacterInfo" table="employees">
        <id name="Id" column="id_employeer">
            <generator class="native"/>
        </id>
        <property name="Login" column="employeer_login"/>



    </class>

</hibernate-mapping>
主类

public class main {


    public static void main(String args[]) throws Exception {
        HibernateUtility hibernateUtility = new HibernateUtility();
        CharacterInfo characterInfo = new CharacterInfo();
        characterInfo.setId(1);
        characterInfo.setLogin("PawJaw");
        hibernateUtility.setUp();
        hibernateUtility.saving(characterInfo);


    }
}
最后是例外

错误:字段“Id\u employeer”中没有默认值异常 线程“main”org.hibernate.exception.genericjdbception:无法 在处执行语句 org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:47) 在 org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111) 在 org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:97) 在 org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:178) 在 org.hibernate.dialogue.identity.GetGeneratedKeysDelegate.executeAndExtract(GetGeneratedKeysDelegate.java:57) 在 org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:42) 在 org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2919) 在 org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3490) 在 org.hibernate.action.internal.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:81) 位于org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:626) 在 org.hibernate.engine.spi.ActionQueue.addResolvedEntityInsertAction(ActionQueue.java:280) 在 org.hibernate.engine.spi.ActionQueue.addInsertAction(ActionQueue.java:261) 在 org.hibernate.engine.spi.ActionQueue.addAction(ActionQueue.java:306) 在 org.hibernate.event.internal.AbstractSaveEventListener.addInsertAction(AbstractSaveEventListener.java:318) 在 org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:275) 在 org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:182) 在 org.hibernate.event.internal.AbstractSaveEventListener.SaveWithGenerateId(AbstractSaveEventListener.java:113) 在 org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:192) 在 org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:38) 在 org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:177) 在 org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:32) 在 org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:73) 位于org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:691) 位于org.hibernate.internal.SessionImpl.save(SessionImpl.java:683) org.hibernate.internal.SessionImpl.save(SessionImpl.java:678)位于 保存(HibernateUtility.java:17) main.main(main.java:10)由以下原因引起:java.sql.SQLException:Field “Id_employeer”在上没有默认值 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)位于 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)位于 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)位于 com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527)位于 com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)位于 com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2487)位于 com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858) 在 com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2079) 在 com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2013) 在 com.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5104) 在 com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1998) 在 org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:175) ... 23多


首先,如果使用Hibernate注释,则不需要使用Hibernate XML映射文件


您的错误可能是因为您的数据库架构。Id\u employeer列不是自动递增的。

谢谢您的帮助,我在2分钟前解决了这个问题。我浪费了大半天的时间,解决问题很容易;O
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;


@Entity
@Table( name = "employees")
public class CharacterInfo {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "Id_employeer")
    private int id ;

    @Column(name = "employeer_Login")
    private String login;


    public CharacterInfo() {}

    public int getId() {
        return id;

    }

    public void setId(int id) {
        this.id = id;
    }


    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }



}
public class main {


    public static void main(String args[]) throws Exception {
        HibernateUtility hibernateUtility = new HibernateUtility();
        CharacterInfo characterInfo = new CharacterInfo();
        characterInfo.setId(1);
        characterInfo.setLogin("PawJaw");
        hibernateUtility.setUp();
        hibernateUtility.saving(characterInfo);


    }
}