この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 19696|答える: 2

[出典] nhibernate ネイティブの一次キー生成ポリシー

[リンクをコピー]
掲載地 2017/04/07 10:02:04 | | |

前回システム用にOracleデータベースを作ったとき、hibernateを使ってプライマリキーを生成する戦略はSEQUENCEでしたが、その時はとても疲れていました。なぜかはわかりませんが、oracle+sequence+triggerでは新しいデータを追加してもプライマリキーの値が得られませんでした。



今回はこの点に焦点を当てますが、新たな問題が二つあります。

1。 主キーを生成するハイバネート戦略はどちらがより良いパフォーマンスを持つか、

2。 主要な鍵生成戦略は理想的にはクロスデータベースであるべきです。



みんなパフォーマンスについて話しますが、オラクルはシーケンスを使うので、プライマリキーはこの方法で生成したいのです。

次に新しいデータを返すプライマリキーがあります


ネイティブ
基盤となるデータベースの能力に応じて、同一性、シーケンス、またはヒロのいずれかを選択し、

つまり、主キーが生成され、ハイバネートによって選択されます。


ネイティブとデニティはどちらもデータベースIDのシリアル番号生成戦略であり、ネイティブはハイバネートで自動的に選択・生成されます。アイデンティティは自己選択、アイデンティティはMySQL、SQL2000などのデータベース生成方法です。また、Oracleなどの生成方法のシーケンスもあります。一般的に言えば、ネイティブはハイバネートによって自動的に選択されます

内部でアイデンティティフィールドをサポートするデータベース(DB2、MySQL、Sybase、MS SQL)では、アイデンティティオフを使うことができます
キーワード生成。 内部でシーケンスをサポートするデータベース(DB2、Oracle、PostgreSQL、Interbase、McKoi、SAP)の場合。
DB)では、シーケンススタイルのキーワード生成を使うことができます。 どちらの方法も新しい物体を挿入するのに2回必要です
SQLクエリ。



さらにネットで調べたのですが、どこで見たのか分かりませんが、このプライマリキーを生成する戦略は、もしMySQLならauto_increment方法を選びます。 もしオラクルなら、彼はシーケンス法を選択します。 ただし、Oracleデータベースを使う場合は、Hibernateによって予約されているhibernate_sequenceを作成する必要があり、ビルド(テスト済み)でなければエラーが報告されます。




先の:クラスにおける静的、非静的、構成的メソッドの実行順序の概要
次に:同時タイムスタンプと並行チェックの区別の扱い
 地主| 掲載地 2017/04/07 10:02:07 |
ネイティブは生まれつきのもの、ネイティブ、つまり生まれつきのものだ。
つまり、自動生成され、手動の助けや操作を必要としません。

割り当てられた手段、割り当てられた。
何かを与えなければ、彼はそれを達成できません。
労力がかかるのだから、自分で何かしらの力を与えてやるんだ
つまり、割り当てられている
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com