多くのジェネレータクラスは、識別子を生成するためにhttp://www.roseindia.net/hibernate/hibernateidgeneratorelement.shtml にあります。しかし、もし私がインクリメントとシーケンスを見れば、私は違いが何であり、どちらが良いのか分かりません。Hibernateジェネレータクラスのインクリメントとシーケンス?
2
A
答えて
13
Sequence
は、idを生成するためにデータベース・シーケンス(Oracleなど)を使用しますが、increment
は、jvmのidを追跡し、プロセス内でそれを増分します。他のプログラム/人がデータベーステーブルに挿入しようとすると、シーケンスが安全になります。シーケンスを使用するには
:
- データベースがシーケンスをサポートしなければならない(、PostgreSQLのオラクル、DB2を...)
- あなたはシーケンスを作成する必要があります(
CREATE SEQUENCE mySquence;
)
Increment
が少ない方が安全です(しかし、シーケンスをサポートしていないDBには移植性があります)、テストや始動に適しています。プロダクションでの使用にはIncrement
を使用するよりも良い方法があります(例えば、ネイティブ/アイデンティティなど)。
3
私は自動生成値を使用します。 Hibernateはあなたが使用しているDBのための最良の戦略を作り出します。
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
はまた、あなたがあなたのエンティティを変更することなく、HSQLDBのようなメモリDBでシンプルに対してテストできることを意味します。
+0
これは質問に答えません – Karl
0
あなたが質問を言い換えることができます。このライン
@GenericGenerator(name = "increment", strategy = "increment")
@GeneratedValue(generator = "increment")
関連する問題
- 1. HibernateとOracle overstateシーケンスのインクリメント
- 2. OracleシーケンスがJava/Hibernateからインクリメントしない
- 3. hibernate @Id自動インクリメントなしの@GeneratedValueとシーケンスがありません
- 4. PHPのhtmlジェネレータクラス
- 5. Hibernate HQL DB2シーケンス
- 6. DB2でシーケンスを2回インクリメント
- 7. カスタムURLジェネレータクラス
- 8. Hibernate - 別のスキーマのテーブルとシーケンス
- 9. JavaのHibernate ID自動インクリメント
- 10. Hibernate(Java)の自動インクリメントMicrosoftSQL
- 11. Hibernateのインクリメント開始番号
- 12. HibernateとPostgreSQL - シーケンスの開始が-46
- 13. 構成IDシーケンスhibernateジェネレータ
- 14. 主キーの定義、Hibernateリバースエンジニアリング、Oracleシーケンス
- 15. hibernate:シーケンスの競合が多すぎる
- 16. Hibernateは自動インクリメントのIDと複合キー
- 17. シーケンス - 元ごとに2つのレコードに</p> <p>をシーケンスをインクリメントする方法odoo 10
- 18. ハイバーネーションアノテーションに割り当てられたジェネレータクラス
- 19. シーケンスおよびトリガーの問題を伴うOracle自動インクリメント
- 20. は(自動インクリメント)における欠損値のシーケンス
- 21. db:seed laravel 5.5.x postgresのシーケンスIDをインクリメントしない
- 22. Rで交互にインクリメントするシーケンスを生成しますか?
- 23. コマンドを実行できません[1つのインクリメントを1ずつインクリメントしてシーケンスを作成する]
- 24. 自動インクリメントIDでHibernateの問題MYSQL 5
- 25. Hibernate 5.0.3でのSQLサーバ・シーケンス使用時のエラー
- 26. liquibaseのインポート後にHibernateのシーケンスが更新されない
- 27. サブクラスのHibernateでテーブルごとに異なるシーケンスを指定する
- 28. HibernateのDBシーケンスに文字列をマップする方法
- 29. 定義済みのシーケンス(postgresql)を使用していないHibernate
- 30. JPA/HibernateでOracleシーケンスの値が多すぎます
を試すことができますか?あなたが何を求めているのか分かりません。 – brc