2016-10-27 4 views
1

postgresのための代わりに、テーブルの列を期待します検出される。これは私の地元のSQLServer Expressなどのほか、ユニットテストで使用されているH2データベースのために働くHibernateは、私は私のIDの生成が定義されている

<changeSet author="david (generated)" id="1477051164467-23"> 
    <createTable tableName="hibernate_sequences"> 
     <column name="sequence_name" type="varchar(255)"> 
      <constraints nullable="false"/> 
     </column> 
     <column name="sequence_next_hi_value" type="bigint"/> 
    </createTable> 
</changeSet> 

hibernate_sequencesためLiquiBaseを定義は次のようになります。 hibernateは、シーケンステーブルを使用する代わりに、データベースシーケンスを期待しています。org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: missing sequence [hibernate_sequence] 私は、TableGenerator戦略を使用すると、どのデータベースでもシーケンスを必要としないと考えました。我々はので、私はポータブルソリューションを必要とする製造に使用されるかのデータベースを知らないこの時点で休止5.0.11.Final

で春のブートを使用して

。 (最低でもOracle、MsSQL、Postgres、MySqlなどをサポートしています...)

アップデート: 私はローカルのpostgresをインストールしています。それは実際に使用されている(カウンターは3)が、私はどのエンティティによって手掛かりがありません。 エンベロープ監査を有効にするために、休止状態のエンバーも使用しました。 revinfoテーブルは別のシーケンスを使用しますが、これはliquibaseによって作成されます。判明

は、休止状態enversのデフォルトのエンティティは、それゆえシーケンス事前に

感謝の必要性を@GeneratedValueを使用しています。より多くの情報が必要な場合はお気軽にお問い合わせください。

答えて

0

エンティティを確認して、すべてがorg.hibernate.id.enhanced.TableGeneratorを使用しているかどうかを確認してください。これが唯一の原因です。https://github.com/hibernate/hibernate-orm/blob/5.0.11/hibernate-core/src/main/java/org/hibernate/id/enhanced/TableGenerator.java#L662を見ると、シーケンスが必要ないことがわかります。

+0

こんにちは、お返事ありがとうございます。私はこれを調べなければならない。私は、この基本クラスから継承しないエンティティをいくつか持っていますが、生成されたIDはなく、 '@ Id'アノテーションだけです。 – deekay

+0

あなたは本当に '@ GeneratedValue'を持つ別のエンティティがあるという事実についてあなたが正しいので、私はあなたの答えを受け入れます。それは私自身のコードではなく、休止状態にあります。 – deekay

関連する問題