問題タブ [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.
google-app-engine - オブジェクトが永続マネージャに属しているかどうかを判断する
私の特定の質問(他のすべては単なるコンテキストであり、私の質問に対する答えがわかっている場合は無視できます):オブジェクトが一時的であるかJDOを使用していないかを判断するにはどうすればよいですか(またはこれを行う短いメソッドを作成するにはどうすればよいですか)?
興味がある人や、なぜ私がこれを望んでいるのか理解できない人のためのコンテキスト:
私は GAE/J で JDO を使用して作業しており、現在アプリ エンジンの memcache API の使用を実装しています。データストアからエンティティのインスタンスをキャッシュする際に問題が発生しました。リクエストの最後に、永続化マネージャーが閉じられ、キャッシュされたオブジェクトが一時的になり (これについては間違っている可能性があります)、キャッシュにたむろしていることがわかります。
将来、キャッシュされたオブジェクトはビューの構築などに使用されますが、オブジェクトを更新して永続化しようとすると、オブジェクトは持続しません (当然のことです)。更新操作を実行する前に、キャッシュされたオブジェクトを再フェッチすることで、この問題を回避しています。しかし、これは別の問題を引き起こしています。なぜなら、たまたまキャッシュされていないオブジェクトを更新すると、永続マネージャーによって管理され、新しいオブジェクトをフェッチすると、実行する更新操作が上書きされるからです。基本的に、私はこれをやっています....
これを行うべき他の方法がある場合、またはこれについて間違っていると考えている場合は、遠慮なく指摘してください。
hibernate - @TransientとマークされたフィールドをシリアライズしようとするHibernate
比較的単純なオブジェクトと呼ぶもののセットをデータベースに永続化しようとしています。残念ながら、Hibernate は私のクラスのいくつかで @Transient アノテーションを無視しているようです (または、アノテーションを付けてもシリアル化しようとしています)。シリアル化できないクラスがあると、これは厄介なエラーを引き起こします。
必要に応じて、AxisEventHandler クラスをシリアライズ可能にできますが、できなかった場合 (クローズド ソース ライブラリの最終クラスなど)、どうすればよいでしょうか?
GenericEventHandler クラスまたは要求に応じて簡潔にするためにコメントアウトしたコードの詳細を提供できます (ただし、それらは特に重要ではないと思います... 間違っている可能性があります)。
例外:
主軸クラス:
基本的な実装:
AxisEventHandler クラス:
java - 一時的なキーワードに関連付ける変数またはオブジェクトはどれですか?
オブジェクトの状態を永続化する必要がある場合に必要であると書かれているシリアライゼーションの理論の部分について読んだことがあります。さまざまな JVM で実行される Web サービス アプリケーションを作成しました。
Web サービスのパフォーマンスを改善する過程にあるため、クラスtransient
内の変数の一部にキーワードを使用することにしましたWebservice
どのオブジェクトをシリアル化する必要があり、何をシリアル化してはならないのか、それに関連するいくつかの質問があります
1.最初に Logger から始めますtransient
。たとえば、次のキーワードを使用します。
2.しかし、クラス内のインスタンス変数はどうですか?? それらに一時的なものを使用する必要がありますか?? 例えば :
あなたの情報を共有してください。
java - Hibernate は一時オブジェクトでエンティティを更新します
このシナリオへの最善のアプローチは何かをさまよっていました。テーブルがあり、テーブルの行を更新したいです。テーブル内の行の 1 つに関連する新しい一時オブジェクトが与えられましたが、一部の情報が異なります (これは更新が必要な情報です)。DB からオブジェクトを取得すると、DB オブジェクトを更新する必要がある 1 つの永続オブジェクトと 1 つの一時オブジェクトができました。
Hibernate と MySql を使用しています。
最善のアプローチは何ですか。
編集: オブジェクトは、他のテーブルへの外部キーで非常に複雑です。
ありがとう、ローネン。
java - hbm.xml にマップされたプロパティを一時的にすることはできますか?
User
次のようなエンティティがあるとします。
hashedPassword
クライアントに転送したくないので、一時的にします。
このクラスは Hibernate によってマップされ、両方のフィールドが hbm.xml にマップされます。
この実装は安全で正しいですか? Hibernate はデータベースに正しく保存hashedPassword
し、データベースからオブジェクトにロードし、レプリケートされた第 2 レベルのキャッシュやローカル セッション キャッシュなどに保持しますか?
つまり、Hibernate または第 2 レベルのキャッシュtransient
は何らかの方法でそれを尊重しますか、それとも完全に無視しますか?
編集:方程式の特定の側面が1つ含まれていないように見える2つの回答をすでに取得しています。私は注釈をまったく使用しておらず、.xml の XML マッピングのみを使用していますhbm.xml
。そして、この Java 一時フィールドは で OR マップされhbm.xml
ます。
core-data - NSManagedObject: 一時的または通常の @property を使用する必要がありますか?
一時的ではなく通常の @property を使用しないのはなぜですか? 元に戻すのサポートについては気にしません。
java - セッション中の一時オブジェクト
フレームワークのドキュメントの1つを読みました。「セッションで大きなオブジェクトが必要な場合、アプリケーションはこれらをセッションマネージャーで一時オブジェクトとして定義する必要があります」
これらの大きなオブジェクトのトランジェントを定義しても、大きなオブジェクトをセッションに維持することに影響を与えないのはなぜですか?
performance - grails の一時的なプロパティは、アプリケーションのメモリ使用量に影響しますか?
ドメイン クラスごとに一時的なプロパティを使用しています。中には10個以上あるものもあります。
非常に遅いアプリケーションが発生しています。tc サーバーを使用して分析を開始しました。読み込み時間の大部分は、gsp ファイルのレンダリングに費やされます。
より多くのメモリを消費したり、アプリ全体を遅くしたりするという一時的な値に関する既知の問題はありますか? それらを通常のプロパティに置き換えて、挿入/更新時に値を更新する必要がありますか?
nhibernate - 一時インスタンスによるNHibernateクエリは、「一時インスタンスを保存」になります-例外
モデルが一時的である可能性があるクエリを実行している古いコードがあります。つまり、ユーザー入力からいくつかのフィールドが入力され、クエリの一部として使用されるモデルです。NH 2.1.xで動作しましたが、最新バージョンでは失敗します。
発生する例外は、「オブジェクトは保存されていない一時インスタンスを参照しています。フラッシュする前に一時インスタンスを保存してください」です。これは、NHがクエリの一部として非永続オブジェクトを使用してクエリを実行しようとしたときに発生します。
問題を説明するための簡略化されたバージョン。
そして、呼び出しコードはこれと同等です:
私が予想したこと(これは古いNHibernateバージョンの動作のようです)は、渡されたエンジンがIDの取得にのみ使用されることです。つまり、エンジン=42の車からselect....のようにSQlを生成します。
しかし、新しいバージョンでは、NHibernateは式で使用されるエンジンが実際に永続化されていることを確認しているようです。
クエリを実行する前に永続化されたエンジンをロードする必要を回避する方法はありますか?
java - CDI コンストラクター インジェクションは、一時的なシリアル化できない依存関係では機能しません。
私は CDI のコンストラクター インジェクションがとても気に入っていますが、コンストラクター インジェクションが期待どおりに機能しないユースケースを見つけました。
私の例では、2 つのクラスがあります。クラス「BeanA」には明示的なスコープが定義されておらず、Serializable を実装していません。クラス「BeanB」には @SessionScoped のアノテーションが付けられており、Serializable を実装しています。
もちろん、BeanA のインスタンスを BeanB に注入しようとすると、BeanA はシリアル化できないため、Weld から UnserializableDependencyException が発生します。これは予期される動作です。
フィールド「beanA」を「transient」でマークすると、注入は問題なく機能します。
現在、Weld は例外をスローしません。
これは私にとってはまったく問題ありませんが、コンストラクター注入でこれを機能させたい場合、私の理解の問題が発生します。次のことを行うと、もう機能しません。
このコードでは、 UnserializableDependencyException が再び発生します。コンストラクター注入とフィールド注入は多かれ少なかれ同等だと思っていましたが、明らかにそうではありません。私の間違いは何ですか?