問題タブ [id-generation]

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.

0 投票する
1 に答える
3841 参照

java - ネイティブ ID ジェネレーター タイプとインクリメント ID ジェネレーター タイプの違い

native休止状態で id ジェネレーターを使用する場合とincrementタイプ id ジェネレーターを使用する場合の基本的な違いは何ですか。

ジェネレーターが以前は でしたが、しばらくの間native変更したエンティティがあったincrementalため、正常に機能していました。でもつい昨日、また着替えnativeたら、挿入失敗して… Contraint Violation

id自動生成されるフィールドにインデックスを設定しました。

ここで何かが足りないのですか?

ありがとう

0 投票する
3 に答える
44826 参照

hibernate - Hibernate with Oracle シーケンスはそれを使用しません

オラクルシーケンスを使用するように休止状態を構成しました。シーケンスは cache=20、increment=1 で作成されます。

すべて正常に動作し、エンティティを休止状態にします。ID 値がおかしい: 50,51....76,201,202...209,1008,1009,5129,5130 ....

シーケンス値を要求すると (デュアルから hibernate_sequence.nextval を選択)、2,3,4 のような値が得られます ....

ハイバネート SQL デバッグをオンにすると、「デュアルから hibernate_sequence.nextval を選択」という呼び出しが時々ありますが、ハイバネートによって ID に割り当てられた番号がシーケンスでリレーされません!

0 投票する
1 に答える
1048 参照

.net - Fluent nHibernate AutoMapping & ID 生成スキーム

Fluent NHibernate (AutoMapping 付き) を使用して、既定の ID 生成スキームを Guid.Comb に構成するにはどうすればよいですか? 各エンティティ (または基本クラス) で次のコードを指定できることがわかります。

それは結構です。ただし、これはデフォルトの動作をオーバーライドするほど設定しているようには見えません。構成のトリックが欠けているかどうかを知りたいだけです。

助けてくれてありがとう

0 投票する
2 に答える
3356 参照

hibernate - Hibernate。強化された識別子ジェネレータ

次の要件を満たすHibernateIDジェネレーターを使用することにしました。-ドメインが異なるアプリケーション(異なるJVM)からアクセスされる場合の安全なID生成-ID間隔を使用します(新しいIDが発生するたびにデータベースにクエリを実行しないでください)必要)

いくつかの調査の後、私は2つの休止状態の拡張識別子ジェネレーターの1つを選択しました。

org.hibernate.id.enhanced.TableGenerator

問題は、このアルゴリズムが利用可能な次の値ではなく、利用可能な次の間隔の終わりをデータベースに保持することです。したがって、increment_size 10のIDジェネレーターがあるとすると、IDを要求すると、間隔1-を受け取ります。 10ですが、データベースには値11ではなく21が格納されています。この動作では、特定のテーブルにマップするすべてのクラスで、increment_sizeを同じに保つ必要があります。なぜこの動作をするのですか?これを修正する方法はありますか?

0 投票する
2 に答える
3718 参照

oracle - Oracle before-insert トリガーと Hibernate id ジェネレーターの設定

Oracle スキーマに永続化されたエンティティがあります。DB 挿入時に、トリガーは DB シーケンスを使用してエンティティ ID を生成します。レガシー コンポーネントにとって重要な ID 生成シーケンス (ログ テーブルの種類) の横にある別のテーブルも更新されるため、トリガーの使用は必須です。

エンティティ マッピングで Hibernate id ジェネレーターを構成するにはどうすればよいですか?

同様の Stackoverflow の質問を調べてみると、私の場合には当てはまらない解決策がいくつか見つかりました。

  1. シーケンスを直接使用する: <generator class="sequence">...</generator>. 残りのトリガー コードが実行されないため、これは不可能です。
  2. これ<generator class="select">...</generator>は、挿入後に Hibernate が別の固有のプロパティを使用してエンティティを選択することを意味します (Hibernate-3.3 マニュアル 5.1.4.6. に従って)。他に一意の列がなく、一連のプロパティの使用がサポートされていないため、これもここでは不可能です。
  3. <generator class="assigned">...</generator>を呼び出す前に偽の IDを使用および設定するsave()。この ID は DB トリガーによって無視され、結果の DB 行には正しい ID が含まれます。ただし、私の Java インスタンスにはそれがなく、このソリューションはトリガーの実装を前提としているため、魅力的ではありません。

この問題の良い解決策はありますか?

0 投票する
2 に答える
1727 参照

razor - Razor Htmlヘルパーが生成するIDを知るにはどうすればよいですか?

Razorビューで、次のようなものがあると仮定します。

ここで、「Värde」はスウェーデン語で「Value」を意味します。「ä」が含まれていることに注意してください。このため、Razorは次のようなHTMLを生成します。

要素のIDは、「Värde」ではなく「V_rde」であることに注意してください。

では、getElementByIdを使用してJavaScriptからこの要素にアクセスするにはどうすればよいですか?'V_rde'を使用できることは理解していますが、 "Värde"だけでなく、次のような一般的に機能するものが必要です(htmlAttributesパラメーターを意味します)。

@ Html.IdFor(string name)で、ラベル、チェックボックス、エディットボックスなどの@HtmlヘルパーでIDが変換されるのとまったく同じように名前を変換したい場合。

0 投票する
1 に答える
30475 参照

hibernate - strategy=GeneratedType.AUTO の @GeneratedValue は、再起動後に繰り返される値を生成します

IDが次のように構成された休止状態のエンティティがあります

新しい要素の作成は、最初の実行では正常に機能します。しかし、アプリケーションを再起動してレコードを取得すると、次にこのエンティティを永続化しようとすると、休止状態は、アプリケーションが再起動されなかったときに生成された同じ ID を使用しようとします。

以下のエラーが表示されます。トレース オプションを使用して実行すると、ID が再利用されていることがわかりました。

*Hibernate: org_myEntity (entitiyJID, entitityName, id) 値 (?, ?, ?) に挿入します org.hibernate.util.JDBCExceptionReporter
SQL エラー: 20000、SQLState: 23505 org.hibernate.util.JDBCExceptionReporter 'TABLE_NAME' で定義された 'SQL120725164357680' で識別される一意または主キー制約または一意のインデックスで重複キー値が発生しました。org.hibernate.event.def.AbstractFlushingEventListener
データベースの状態をセッション org.hibernate.exception.ConstraintViolationException と同期できませんでした: できませんでした*

ちなみに、私は hibernate 3.3.2.GA、javax.persistance 2.0.0、および Derby 10.5.1 データベースを使用しています。

私の世代で何が問題なのか、どうすれば修正できるのか、誰か知っている人はいますか?

0 投票する
1 に答える
2939 参照

c - 一意の識別子の作成-純粋なC

私はおもちゃのOSを書いていますが、一意の識別子を作成する方法が必要です(WindowsのようにHANDLE)。これは純粋なC/ASM数学である必要があります。可能であれば、C標準ライブラリでさえも、何にも依存したくありません。現在、次のように32ビットGUID1を格納するデータ構造があります。

GUIDを実際のデータに関連付ける別の構造がありますが、この投稿の目的では、それほど重要ではありません。

私のカーネルは、GUIDのタイプをサポートし、各タイプのGUIDの一意のインスタンスを最大でサポートすることを願っています(これで十分ですよね?)。フィールドとフィールドの不正な値になりたいので、1を引きます。私の問題は、カーネルが作成する各フィールドに一意に入力するアルゴリズムを開発する方法がわからないことです。私が考えることができる唯一のアルゴリズムは、ランダムにIDを選択し、そのIDが作成したい特定のクラスのGUIDに使用されるかどうかを確認することです。ただし、その特定のタイプで作成されたすべてのGUIDを並べ替えて、使用されているかどうかを確認し、使用されている場合は、すべてをやり直す必要があります。私はまた、210 - 1 = 1023222 - 1 = 41943030.type.id.idGUIDu32使用されるGUIDのタイプごとに1つあり(1023タイプはないと確信しています)、GUIDが必要になるたびに適切な数を増やすだけですが、特定の4194303GUIDを作成するとどうなりますかタイプ?

これは一意であることが保証されているため、ユーザーに実際のデータへのポインターを提供しtypedef void* GUID、APIユーザーにデータをいじりたくないことを知らせるために使用する方がよいでしょうか。または、GUIDが提供する抽象化が必要ですか?

1)これはGUID標準とはまったく関係ありません。私は独自にこの名前を思いついたのですが、実際にGUIDと呼ばれるものがあることに気付いたとき、新しい名前を思いついたのですが、まだ成功していません。

0 投票する
2 に答える
298 参照

math - 大規模システムの固有番号の生成

私たちのほとんどは、Amazon のようなサイトから購入すると、乱数のような注文番号または購入番号 (10 ~ 12 桁) を取得することを見てきました。同様に、大規模システム用に一意の ID を生成したいと考えています。それを生成するための最良のアルゴリズムは何ですか?

私が効率的ではない、または大規模システムには適用できないと思ったいくつかの方法