問題タブ [transient]
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.
java - ヌルの一時的な属性
@PrePersistアノテーションが付けられたメソッドがありますが、このメソッドが実行されると、すべての一時属性(@Transientアノテーションが付けられた属性)がnullになることがわかりました。
アプリケーションをデバッグすると、persist()メソッドを呼び出す直前にこの一時属性がnullではなく、PrePersistメソッドに入るとすべての一時属性がnullに変わることがわかります。
これはPostPersistメソッドでも発生し、このメソッドの一時的な情報が必要です。
この動作は正常ですか?この情報をデータベースに保存せずに回避できますか?
それが役立つ場合は、Hibernate3.5とJPA2を使用します。
ありがとう
java - 一時フィールドを復元するための readObject() と readResolve() の比較
Serializable javadoc によるとreadResolve()
、ストリームから読み取ったオブジェクトを置き換えることを目的としています。しかし、確かに (?) オブジェクトを置き換える必要はないので、次のように、一時的なフィールドを復元して元の参照を返すために使用しても問題ありません。
を使用するのではなくreadObject()
:
一時的なフィールドを復元するために使用する場合、他のものよりも選択する理由はありますか? readResolve()
実際には、パラメーターを必要としないため、次のようなコンストラクターでオブジェクトを「通常どおり」構築するときにも簡単に使用できるため、私は傾いています。
java - @Transient アノテーションでマークされたフィールドをエンティティに追加すると、非常にバグが発生しやすいと感じています。私は正しいですか?
DB にマップされていないフィールドを追加すると、エンティティ クラスが破損し、問題を解決する間違った方法であるという、哲学的な直感的な感覚があります。
@Transient
しかし、フィールドの使用が暗黙的で難しい問題を解決する具体的な状況はありますか?
たとえば、@Transient
エンティティにフィールドがある場合、第 2 レベルのキャッシュを追加または削除するとアプリが壊れる可能性はありますか?
かなりの更新:フィールドについていくつか考えた後、フィールドは適切な方法で使用する必要がある@Transient
ように思えます。@Transient
「適切な方法」とは、エンティティが常に同じ動作をする必要があることを意味します。null
これは、 @Transient フィールドの値に応じて getter が を時々返すときに、非常にエラーが発生しやすい動作であることを意味します。また、@Transient フィールドは常に初期化する必要があることを意味します。
そして、適切な使用例は2つしかありません。
@Transient フィールドは、オブジェクトのコンストラクターで初期化する必要があります。
/li>@Transient フィールドは遅延初期化できます。
/li>
誰かがこれらの 2 つのケースについてコメントしたり、私が見逃した他のケースについて説明したりできますか?
java - equals/hashCode/toString で @Transient プロパティを使用する必要がありますか?
一部のプロパティに の注釈が付けられている JPA エンティティがあります@Transient
。
これらのプロパティをequals/hashCode/toString
メソッドで使用する必要がありますか?
私の最初の考えはNOですが、理由はわかりません。
- チップ?
- アイデア?
- 説明?
wordpress - Wordpressトランジェント
私はいくつかの新しいデータベース技術を学ぼうとしていますが、現時点では、何か新しいことを適用して試す機会があります。
Wordpressは、その値の一部を作り出しました。「一時的」であり、キー値に固定します。
値の例:
a:20:{i:-1273996637; i:1284; i:-1273997086;}
私が知りたいのは、これらの値がどのように作成されるかについての概念です。
java - 一時的な属性を持つオブジェクトをストリームに書き込む (Java)
別の VM でオブジェクトを再構築できるように、一時的な属性を使用してオブジェクトをストリーム (またはバイト配列) に書き込みたいと考えています。そのオブジェクトはレガシー アプリケーションの一部であるため、属性を変更したくありません。
標準の Java シリアライゼーション メカニズムは役に立ちません。他にどのようなオプションがありますか?
更新: 私が質問している理由は、既存の Spring アプリケーションを変更したいからです。以前はインプロセスで Bean のメソッドを呼び出していましたが、今度は Bean を別のマシンに移動し、HTTP インボーカーを介して Spring リモート処理を使用したいと考えています。また、このメソッドに渡す必要があるがアプリの他の部分でシリアル化する必要のない一時的なフィールドを持つパラメーターに問題があります。
data-structures - なぜのぞき見がないのですか!clojureの一時的なベクトルの機能?
Clojure には、永続的なデータ構造、ベクトル、マップ、およびセットのいくつかに一時的な類似物があります。ベクトルの場合、永続ベクトルのとに類似したpop!
と関数がありますが、 はありません。 conj!
pop
conj
peek!
peek!
の効率的な実装を不可能にする技術的な理由はありますか? それとも、一時的なベクトルのほとんどのユースケースでは必要ないのでしょうか? いつでもできる
しかし、組み込みのソリューションがないのは奇妙に思えます。
asp.net - フッ素のTransientAttributeとLinq-to-SQL
回避策を見つけましたが、今週初めにFluorineFxでの作業に問題がありました。そこでは、LinqからSQLに生成されたオブジェクトをFlashにネットワーク経由で送信したいと考えていました。このオブジェクトには、Flashが必要としないプロパティが含まれていました。
しかし、Flexはこのタイプの再膨張を処理できず、次のようにスローします。
ArgumentError:エラー#2173:ストリーム内のオブジェクトを読み取ることができません。クラスflex.messaging.io.ArrayCollectionはflash.utils.IExternalizableを実装していませんが、externalizableクラスにエイリアスされています。
これで、プロパティをネットワーク経由で送信する必要がなくなったため、Marc Gravellが問題456624で提案した手順を試しました。まず、System.ComponentModel.DataAnnotationsのMetadataTypeAttributeを使用して属性を追加しました(問題に関するJasonWのコメントから見つかりました)。 393687:
残念ながら、FluorineFxはまだメタデータ属性をサポートしていないようです(これはそれほど驚くことではありませんが、まったく新しいものです)。
私がやらなければならなかったのは、Flashが気にかけているすべてのプロパティと、そうでないプロパティを備えた専用のDTOを作成することでした。最もエレガントなソリューションではありません。
それで、他の人がこの問題に遭遇し、それを解決するためのよりエレガントな方法を見つけましたか?
orm - 一時レコードに多対多の関係を追加する教義
2 つのモデル Site と Language は多対多の関係を共有しています (これらは双方向です) それらの間に関係を追加するにはどうすればよいですか?
理想的には、これを行いたい: (既存の言語を新しいサイトに追加する)
---- 言語を追加するコード----
または、save() を呼び出した後にのみ言語を追加する必要があります。
前もって感謝します
java - javaでリフレクションを介してフィールドの一時的なプロパティ/フラグを設定できますか?
フィールドのアクセシビリティ フラグを setAccessible() で設定する方法と同様に、リフレクションを使用して Java でフィールドを一時的にするかどうかを指定する簡単な方法はありますか?