0

私はHibernateとmySqlを使用しています。

私はdbスクリプトを次のように定義しました:

CREATE TABLE `Foo` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `version` int(11) NOT NULL DEFAULT '0',
  `data` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`id`)
);
ALTER TABLE Foo AUTO_INCREMENT = 34324;

これは私の休止状態のマッピングです:

<class name="org.xyz.Foo" table="Foo">
    <cache usage="read-write"/>
    <id name="id" column="id">
         <generator class="increment"/>
    </id>
    <version name="version" column="version"/>
    <property name="data" column="data"/>
</class>

問題:インサートは、として設定されているAutoIncrementIDを尊重していません34324。挿入されたIDは、予想どおり34324ではなく1から始まります。私は自分でIDを設定していません。

4

1 に答える 1

0

あなたの休止状態マッピングの優先生成戦略によると、increment. これは、Hibernate が値を生成することを意味します。ただし、DDL 列は AUTO_INCREMENT である必要があります。これは、MySQL によって値が割り当てられることを意味します。

AUTO_INCREMENT が必要な場合、解決策は次の Hibernate マッピングを使用することです。

<generator class="identity"/>
于 2012-07-16T08:50:04.170 に答える