0

挿入を実行した後に autoinc フィールドを取得することは可能ですか:

String queryString = "insert into " + String.format("table%04d", id) +
                "(sectionid, topicid, dc) values (" + entry.getSectionId() +
            ", " + entry.getTopicId() + ", " + entry.getDc() + ")";
SQLQuery query = session.createSQLQuery(queryString);
query.executeUpdate();

テーブルには 4 つのフィールドがあります

eid - autoinc
sectionid - int
topicid - int
dc - int

私を助けてください

4

1 に答える 1

0

残念ながら、HQL の代わりに SQL クエリを使用することで、Hibernate のデータベースに依存しない利点の多くをバイパスしています。HQL を絶対に使用できない場合は、独自のデータベース固有の実装を実装する必要があります。そのためには、まず Hibernate から JDBC ドライバー クラスを取得する必要があります。

エンティティ マネージャーからデータベース メタデータを取得する方法

ドライバー クラスを取得したら、そのクラスに基づいてデータベース固有のクエリを実行できます。特定の get autoinc クエリを使用してインターフェイスを実装するようにドライバー クラスを変更することはできないため、次のリンクにある Nico の提案をお勧めします。

インスタンスを切り替えますか?

ドライバー クラスに switch ステートメントを実装すると、MYSQL、MSSQL、またはその他の autoinc クエリを実装するかどうかを選択できます。

于 2013-10-18T13:43:14.170 に答える