Hibernate不更新数据表属性?怎么办?

Navi.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2017-9-19 18:15:11 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
    <class name="project001.admin.entity.Navi" table="NAVI">
        <id name="id" type="int">
            <column name="ID" />
            <generator class="native" />
        </id>
        <property name="title" type="java.lang.String">
            <column name="TITLE" />
        </property>
        <property name="sort" type="int">
            <column name="SORT" />
        </property>
        <property name="name" type="java.lang.String">
            <column name="NAME" />
        </property>
    </class>
</hibernate-mapping>

hibernate.cfg.xml

<?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.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.password">12345678</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF-8</property>
        
        <property name="hbm2ddl.auto">update</property>
        
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="show_sql">false</property>
        <property name="format_sql">true</property>

        <mapping resource="project001/admin/entity/Navi.hbm.xml" />
    </session-factory>
</hibernate-configuration>

我想要字段id自增长
我把<generator class="assigned" />改为<generator class="native" />
但是为什么还不能自增长?
插入数据错误提示:Field 'ID' doesn't have a default value.

而且我把

<property name="name" type="java.lang.String">
            <column name="NAME" />
        </property>

我把这段删除了.
但是数据库里的name字段怎么还在啊?没有被删除啊?

阅读 4k
2 个回答

hibernate在update策略下,不要的字段需要自己去删除

数据库自增长,不是要数据库设置吗?难道hibernate可以给你自己长?
你想要表和代码同步,需要你自己设置的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题