問題タブ [object-persistence]
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.
ruby-on-rails - has_many関係のActiveRecordオブジェクトはいつ保存されますか?
Rails 1.2.3を使用しています(ええ、私は知っています)が、has_many
オブジェクトの永続性に関してどのように機能するかについて混乱しています。
例として、これを宣言として使用します。
私が理解しているように、これは、とりわけ、受信インスタンスのオブジェクト(および引数で指定された他のフィールド)User#assignments.build
を作成するメソッドを生成しますが、このオブジェクトをデータベースに保存しません。オブジェクトは、を呼び出すことで後で保存できます。Assignment
user_id
id
Assignment#save!
ただし、チュートリアルおよびリファレンスとして使用している、Railsを使用した実用的なプログラマーのアジャイルWeb開発、第2版は、次のように述べています。
親オブジェクトがデータベースに存在する場合、子オブジェクトをコレクションに追加すると、その子が自動的に保存されます。
ここには矛盾があるようです。私が知りたいのは:
- そうした場合
some_user.assignments.build
、Assignment
オブジェクトは保存されますか? - そうした場合
some_user.assignments << Assignment.new
、Assignment
オブジェクトは保存されますか? - 私がそうする場合
some_user.assignments << Assignment.create
、2つのデータベース呼び出しが行われますか、それとも1つだけですか?Assignment
オブジェクトを作成してから追加するまでの間にオブジェクトを変更するとどうなりsome_user.assignments
ますか? save!
対応するAssignment
オブジェクトがUser
まだデータベースに保存されていない場合はどうなりますか?
PS私がUser#assignments.create
すべてに使用しない理由は、初期化を外部メソッドにファームアウトできないためです。これは、私が実行できるようにしたいことです。また、データベースに何度もアクセスしたくありません。
sqlite - SQLite はどのプラットフォームで動作しますか?
ゲーム制作でC++のオブジェクト永続化にSQLiteを使いたい(SDLを使おうと思っています)。とにかく、SQLite はクロスプラットフォームですか? Windows、Mac、Linux、および Android で動作しますよね? Blackberry、iOS、Nintendo のポータブルおよびコンソール システム、Playstation および XBox システムはどうですか? それらのシステムで動作しますか? またはそうでない場合、それらのシステムで何が動作しますか? 私の目標が超クロスプラットフォームになることである場合、SQLite よりも優れたソリューションはありますか?
また、ブーストシリアル化などのプレーンなシリアル化を使用する必要がありますか? オブジェクトストレージにフラットファイルを使用したくないのでSQLiteを使用したい.
私の考えは、ロードおよび保存関数を使用して独自のシリアル抽象基本クラスを作成し、そこからクラスを派生させ、各クラスのカスタム ロードおよび保存関数を記述して SQLite データベースとやり取りすることでした。
誰かがそれについてより良いアイデアを提案できるのだろうか.
android - すべてのデータベースエンティティが拡張するベースオブジェクトをORMLiteで「マップ」するにはどうすればよいですか
BaseObject
永続化されたすべてのクラスが拡張する、呼び出すオブジェクトがあります。このクラスには、、、などのフィールド_id
があります。このベース オブジェクトを拡張するすべてのオブジェクトに対応するデータベース テーブルには、明らかにこれらの値を格納する列があります。dateCreated
dateModified
これらすべてのフィールドがデータベースに保持されるように、注釈を使用してこれらのフィールドを設定するにはどうすればよいですか? これを行うことができますか、またはこれらのフィールドを POJO に直接追加する必要がありますか? 基本オブジェクトの下に、それを拡張するクラスの 1 つを含めました。
スーパークラスは次のとおりです。
どんな助けでも大歓迎です。ありがとうございました。
python - 迅速な検索のための永続ストレージを備えた*大規模な*Python辞書
スクリプトですばやく検索できるようにしたい4億行の一意のキー値情報があります。私はこれを行うための巧妙な方法は何でしょうか。私は次のことを検討しましたが、辞書の作成中を除いて、多くのメモリを使用せずに辞書をディスクマップする方法があるかどうかはわかりませんでした。
- 漬け辞書オブジェクト:これが私の問題の最適な解決策であるかどうかわからない
- NoSQLタイプのdbases:理想的には、サードパーティのものへの依存度が最小限で、キー値が単純な数値であるものが必要です。これがまだ最善の選択肢だと思われる場合は、それもお聞きしたいと思います。それは私を納得させるかもしれません。
不明な点がありましたらお知らせください。
ありがとう!-アビ
javascript - JavaScript / Google v8 の永続化フレームワーク
JavaScript や Google v8 エンジン用の永続化フレームワークはありますか?
オブジェクト (関数などを含む) のグラフ全体を保存 (シリアル化) し、後で再読み込みしたいと考えています。JSON は、関数の格納を許可せず、ツリー状の構造しか許可しない (つまり、同じオブジェクトを参照する 2 つのオブジェクトがない) ため、十分ではありません。
プログラムのユーザーが JavaScript でカスタマイズできるようにしたいので、一般的に (つまり、v8 を埋め込んだプログラムを作成する時点で JavaScript コードを知らなくても) できるようにする必要がありますが、プログラムの状態 (カスタマイズの状態を含む) を保存し、後で再ロードします。したがって、JavaScript エンジンの状態を保存する必要があります。
編集:
例:
次のコードがあるとします。
次に、(プログラムのロジックに関するメタ情報なしで)obj
シリアライズして後でデシリアライズしてobj.b (2)
、シリアライズ前と同じ結果をデシリアライズ後に配信することは可能ですか?
2 番目の編集:閉鎖に注意してください。
.net - クライアント側のキャッシュ C#
私の wpf クライアントは、起動時にサーバーから大量のデータをロードしています。そのため、クライアント側でキャッシュ戦略を実装したいと考えています。
.NET Framework 4 の新しい System.Runtime.Caching 名前空間について知っています。残念ながら、メモリ キャッシュしかありません。クライアントを起動するたびに大量のデータをロードしたくありません。だから私は永続的なクライアントキャッシュを探しています。
あなたはそれについてどう思いますか?
もう 1 つのアイデアは、クライアント キャッシングに OODB (db4o や VelocityDB など) を使用することでした。これは悪い考えですか?クライアントキャッシングの経験はありません。
回答と提案をありがとうございます。
よろしく、プロ
android - Android Application クラスで状態を永続化する
10 以上のアクティビティで構成される Android アプリケーションを開発しています。ほとんどすべてのアクティビティでアクセスする状態オブジェクトがいくつかあります。この目的のために、これらは MyApplication クラスのグローバル静的変数として実装されました。
ユーザーがアプリケーションの「内」にいる限り、このアプローチは問題ないことに気付きました。ただし、彼がホーム ボタンを押して別のアプリを開き、[最近のアクティビティ] ボタンからアプリに戻ると、Android システムが MyApplication からの静的情報をリセットするので、NullPointerExceptions に対処する必要があります。この動作は、Android がアプリケーション プロセスを強制終了して再作成することによって引き起こされることを知っています。
この種のデータを永続化する最善の方法は、SharedPreferences または SQLite を使用することであり、onCreate で MyState==null を確認して復元するのに問題はありませんが、問題は、適切なタイミングがわからないことです。状態オブジェクトを (設定またはデータベースに) 保存します。MyApplication の finalize() をオーバーライドしようとしました - ダメです。onLowMemory が呼び出されない可能性があることがわかりました。onPause、OnStop などを使用する方法がわかりません。シリアライゼーションのデシリアライゼーションが非常に多くのアクティビティを持っているためです。アプリを遅くします。
何かご意見は?前もって感謝します!
java - 画像を保存しようとするとNullPointerExceptionが発生するのはなぜですか?
アプリに画像を保存しようとしています。しかし、画像オブジェクトを永続化しようとすると、nullポインタ例外が発生します。これが私のImageクラスです:
以下は、例外を与えている私のサーブレットコードです:
なぜこのNullPointerExceptionが発生するのか教えてもらえますか?前もって感謝します。
.net - .NET 用の Karvonite NoSQL ドキュメント データベース/永続ストアの経験はありますか?
Karvoniteを .NET デスクトップ アプリケーションの永続ストアとして使用したことのある人はいますか? 2012 年 11 月に新しいバージョン 5 が発表されたようです。
非常に有望に見えます:
- データモデルのマッピングは簡単に見える
- 非常に軽量な展開
- .NET エコシステムとの非常に優れた統合
RavenDB 組み込みの軽量な代替手段になる可能性があるようです。
SQLite に相当する NoSQL かもしれないと考えています。
しかし、ネット上には情報がほとんどなく、心配です。
それについてあなたの経験は何でしたか?
java - 保存 (またはコミット) およびロールバック メソッドを Map に実装します。
save() と rollback() を標準のマップに追加するための高速で便利な方法を探しています。クラス Table のオブジェクト 'table' があり、これが 'rows' というプライベート マップを持っているとしましょう。私が達成しようとしているのは、Row が次のようなことを行うための高速でメモリを浪費しない方法です。
実際、私の設計は非常に簡単です。addRow() が呼び出されると、マップ内の行を put() します。バッファーも一時要素もありません。Row インスタンス全体を行コレクションに渡すだけです。しかし、高速な方法と (可能であれば) 行の重複を避ける必要があります。
何か案が?