問題タブ [sequence-generators]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
informatica - シーケンス ジェネレーターが中止されたときの動作は?
シーケンス ジェネレーターが中止されたときの動作は?
SL.NO 1 ~ 50 がシーケンス ジェネレーターからターゲット テーブルにロードされ、突然ワークフローが中止された場合、次の実行時に現在の値はどうなりますか? 1か51か?
java - Oracle Coherenceを使用して分散システムで一意のIDを生成する方法は?
キャッシング機能に Oracle Coherence を使用する分散 Java アプリケーションがあります。これを使用して、分散システム用の一意の UUID を生成するにはどうすればよいですか? ここで行われたように、Coherence のキャッシュ機能を活用してシーケンス ジェネレータを実装することで、これを実行できると確信しています。Cassandra にはTimeBaseUUIDがあり、Coherence に同様のものがあるかどうかを調べています。
hibernate - Hibernate SequenceGenerator と allocationSize 値の設定
休止状態で生成された識別子の問題に直面しています。Sequence Generator を使用して識別子を生成しています。データベースは Oracle 11g で、休止状態バージョン 3.6.1 です。
hibernate のデフォルトの allocationSize が 50 であることを認識しているため、hibernate は 50 回の挿入ごとにデータベースを呼び出して識別子をフェッチします。したがって、以下のようにデータベース呼び出しを減らすために、allocationSize を 1000 に変更しています。
ただし、問題はほとんどありません。
まず、これは機能拡張であるため、休止状態のバージョンをアップグレードして新しいシーケンス ジェネレーターを利用することはできません。
第二に、これは他の休止状態のエンティティに影響を与えるため、以下のプロパティを使用することはできません。これは私の変更によって影響を受けるべきではありません.以下のプロパティを1つのエンティティのみに適用するように休止状態に指示する方法はありますか?
第三に、以下の休止状態固有のマッピングを試しました。ただし、ここで初期値を指定する必要があります。そうでない場合は、初期値を 1 として識別子を計算し、識別子が既に使用されているため、予想どおり制約例外を取得します。コードが既に使用されており、シーケンスのプライマリ ID と nextval の両方が初期値から移動しているため、ここで再び初期値を指定することはできません。
第 4 に、最初のコード ブロックで言及したコードを使用することはできません。レコードを挿入するときに UniqueConstraintViolationException がランダムに表示されるためです。 JPA 2 @SequenceGenerator @GeneratedValue で一意の制約違反が発生する
これらすべての制約がある中で、allocationSize を増やしてレコード挿入のパフォーマンスを向上させる方法はありますか。1 回のバッチで約 1,000 ~ 4,000 万件のレコードを挿入します。
よろしく、V
java - JPA: ID 生成の問題
ORM ツールとして OpenJPA を使用しています。
エンティティの永続化中に問題に直面しています。完全に機能するID生成にシーケンスジェネレーターを使用しました。しかし、それが問題を引き起こすシナリオがあります。
テーブルに既にいくつかのエンティティがあるとします。ここで、アプリを新たにデプロイし、新しいエンティティを永続化します。JPA は ID を生成しますが、同じ ID を持つエンティティがテーブルに既に存在する可能性があります。これにより、永続性エラーが発生します。だから私は、JPAがすでにテーブルにある最高のIDよりも大きな値を生成することを望んでいます。
これはどのように行うことができますか?
hibernate - Hibernate Migration 4.x から 5.0.7.Final: フレームワークは mySequence の代わりに hibernate_sequence を使用します (Oracle および H2 を使用)
休止状態のバージョンを 4.0.1.Final から 5.0.7.Final に更新しました (Jboss 7 から Wildfly 10 への移植)。
問題: hibernate フレームワークは、ID 生成に mySequence ではなく hibernate_sequence を使用します。
Hibernate 設定: 下位互換性を維持するために、hibernate.id.new_generator_mappings は false 値として設定されます。
エンティティ構成: id フィールドには、次の JPA API で注釈が付けられます。
DB 構成: MY_GENERATOR_SEQ シーケンスは、「INCREMENT BY 1」オプションで定義されます。
この問題は、H2 と Oracle DB の両方で発生します。
質問:実装を分析しましたが、それが Hibernate のバグなのか、それとも後方互換性のために私が行った不適切な構成なのかわかりません。
分析: サーバー起動時の Hibernate は初期化を取得します。SequenceStyleGenerator.configure メソッドは、Properties パラメータから値を取得しようとしたため、QualifiedName sequenceName を「hibernate_sequence」として定義します。この時点で、MY_GENERATOR_SEQ sequenceName が実行時に「sequence」キー (sequence=MY_GENERATOR_SEQ) を使用して Properties パラメーターに存在することに気付きましたが、取得戦略 (determineSequenceName) にはキーとして「sequence_name」が必要です。そのため、プロパティ パラメーターにシーケンス名を設定するために使用されるキーは、hibernate.id.new_generator_mappings=false のため非推奨のクラス org.hibernate.id.SequenceGenerator.SEQUENCE からのものですが、SequenceStyleGenerator クラスには org.hibernate.id.enhanced が必要です。 .SequenceStyleGenerator.
考えられる解決策:
- SequenceGenerator に設定する allocationSize=1 (hibernate.id.new_generator_mappings=false を設定せずに)
- INCREMENT BY 50 で DB にシーケンス MY_GENERATOR_SEQ を作成します (hibernate.id.new_generator_mappings=false を設定せずに)
どちらのソリューションも私のコンテキストには適用できません。したがって、適用可能な唯一の「解決策」は次のとおりです。Oracle および H2 に使用される方言を拡張し、次の方法で getNativeIdentifierGeneratorClass メソッドをオーバーライドします。
明らかに、org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter に ah-hoc 方言を使用して「databasePlatform」を設定します。
Hibernate コミュニティにも提出: https://hibernate.atlassian.net/browse/HHH-10656
java - @SequenceGenerator は廃止されたため、置き換えます
問題があり@SequenceGenerator
ます:
アプリケーションが起動すると、次の警告が表示されます。
WARN 7388 --- [ main] org.hibernate.orm.deprecation : HHH90000014: 非推奨の [org.hibernate.id.SequenceHiLoGenerator] シーケンスベースの ID ジェネレーターの使用が見つかりました。代わりに org.hibernate.id.enhanced.SequenceStyleGenerator を使用してください。詳細については、Hibernate ドメイン モデル マッピング ガイドを参照してください。
非推奨のコードを新しいコードに置き換える方法を見つけようとしましたが、解決策が見つかりません。
c++ - C ライブラリで使用されている正確な rand() を見つけるにはどうすればよいですか?
私のコースワークの一環として、オリジナルと同じ数値を出力する rand() 乱数ジェネレーターを見つけて再コーディングする必要があります。開始シーケンスは 1804289383 846930886 1681692777 1714636915 1957747793 424238335 719885386 1649760492 596516649 1189641421 SI1025202362 であり、http://7Hidesone.com で生成できます。
私の問題は、このジェネレーターの元のソースが見つからないことです。また、ジェネレーターの完全なシーケンス (100 個の数字) からジェネレーターがどのように機能するかを理解する方法がわかりません。誰かが元のジェネレーターを見つけるのを手伝ってくれますか、またはそのシーケンスからジェネレーターを見つける方法を教えてくれませんか? ありがとう!
c# - シーケンス A ~ Z を生成し、次に 0 ~ 9、A ~ 999 を生成します
事前に感謝します。A から Z までのシーケンスを生成し、その後 0 から 9 まで、その後 AA、AB、AC ..... AZ、A0、A1 .... A9、BA などに移動します。の上
私は次のように実装しようとしました
しかし、inputList.Sort() はアルファベットの前に数字をソートするため、私のコードは Z の後に失敗します