問題タブ [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.

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

python - Pythonで大きな「データベースのような」クラスを保存する方法

私は合理的な大きなデータベースでプロジェクトを行っています。これは適切な DB ファイルではありませんが、次のような形式のクラスです DataBase.Nodes.Data=[[] for i in range(1,1000)]。最初の質問-私が効率的にやっている方法ですか、それとも実際に使用したことのないSQLまたは他の「適切な」DBを使用する方が良いですか. DataBase classそして主な質問 -すべてのレコードを保存してから、別のセッションで Python を使用して再度開きたいと思います。それは可能ですか、どのツールを使用すればよいですか?cPickle - 文字列のみのようですが、他にはありますか?

matlab には、ワークスペースの保存という名前の非常に便利な機能があります。すべての変数をファイルに保存し、別のセッションで開くことができます。これは Python でさまざまに役立ちます。

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

python - ファイルにデータを保存する cPickle クラス

私はPythonで大きなクラスを持っています。それは「データベースのような」クラスです。ファイルに保存したい - すべてのデータを含む。

これは入力です (問題を示す例、スクリプト データベースでは 10000 レコードのようです):

そして、それは私が得るファイルです:

データはなく、定義だけです。どうすればそれを克服できますか。私のデータをクラスとして保存するのは良い考えではないでしょうか?

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

database - 透過的な持続性の実装

透過的な持続性により、データベースの代わりに通常のオブジェクトを使用できます。オブジェクトは、ディスクから自動的に読み取られ、ディスクに書き込まれます。そのようなシステムの例は、Gemstone と Rucksack (一般的な Lisp 用) です。

それらが行うことの簡略化されたバージョン: アクセスfoo.barして bar がメモリ内にない場合、ディスクからロードされます。そうする場合foo.bar = bazfooオブジェクトはディスク上で更新されます。ほとんどのシステムには何らかの形式のトランザクションもあり、プログラム間、さらにはネットワーク間でのオブジェクトの共有をサポートしている場合があります。

私の質問は、これらの種類のシステムを実装するためのさまざまな手法と、これらの実装アプローチ間のトレードオフは何ですか?

0 投票する
4 に答える
360 参照

c# - オブジェクト永続化ライブラリに関する私のアイデアは役に立ちますか?

まず、これがこの質問をするのに適切な場所ではないことをお詫びしますが、他にどこから情報を得ることができるかはよくわかりませんでした。

.NETオブジェクト永続化ライブラリの初期バージョンを作成しました。その機能は次のとおりです。

  • POCOの永続性のための非常にシンプルなインターフェース。
  • 主なもの:考えられるほぼすべてのストレージメディアのサポート。これは、ローカルファイルシステム上のプレーンテキストファイルから、SQLiteなどの組み込みシステム、標準SQLサーバー(MySQL、postgres、Oracle、SQL Serverなど)、さまざまなNoSQLデータベース(Mongo、Couch、Redisなど)まで、あらゆるものになります。ドライバーはほぼすべての目的で作成できるため、たとえば、実際のバッキングストアがWebサービスである場合にドライバーを簡単に作成できます。

私が最初にこのアイデアを思いついたとき、私はそれが完全に素晴らしいと確信していました。私はすぐに最初のプロトタイプを作成しました。現在、接続プール、スレッドセーフ、IQueryable for LINQのサポートを試みるかどうかなどの問題について議論している「難しい部分」にいます。そして、それが価値があるかどうかをより厳しく検討しています。私自身の要件を超えてこのライブラリを開発します。


使用法の基本的な例を次に示します。

現在機能しているクエリインターフェイスは次のようになります。

また、SQLWHERE句のようなものを渡すことができる代替クエリインターフェイスにも取り組んでいます。そして明らかに、NETの世界では、IQueryable/式ツリーをサポートするのは素晴らしいことです。

ライブラリは、さまざまな機能を備えた多くの記憶媒体をサポートしているため、属性を使用して、システムが各ドライバーを最大限に活用できるようにします。

すべての属性はオプションであり、基本的にはすべてパフォーマンスに関するものです。単純なケースでは、それらのいずれも必要ありません。

SQL環境では、システムがデフォルトでテーブルとインデックスの作成を処理しますが、システムがDDLを実行できないようにするDbaSafeオプションがあります。

たとえば、SQLエンジンからMongoDBに1行のコードでデータを移行できるのも楽しいことです。またはzipファイルに。そしてまた戻って。

OK、質問:

根本的な質問は「これは役に立ちますか?」です。時間をかけて本当に磨き、スレッドセーフまたは接続をプールし、より優れたクエリインターフェイスを作成し、どこかにアップロードする価値はありますか?

  • すでにこのようなことを行っている別のライブラリ、NAMELYはありますか?複数のデータソース間で機能する単一のインターフェイスを提供します(SQLの種類が異なるだけではありません)。
  • それは解決する必要のある問題を解決しているのでしょうか、それとも他の誰かがすでにそれをよりよく解決しているのでしょうか?
  • 先に進むと、プロジェクトをどのように表示できるようになりますか?

明らかに、これはORMの代わりにはなりません(ORMと共存でき、従来のSQLサーバーと共存できます)。その主なユースケースは、ORMが過剰な単純な永続化、またはNoSQLタイプのシナリオであり、ドキュメントストアタイプのインターフェイスが望ましい場合だと思います。

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

iphone - アプリを閉じたときに値を保存する方法

私はiPhoneプログラミングに不慣れです。

私のアプリはクイズのようなものです。クイズの種類が異なり、クイズの種類ごとに多くの質問があります。アプリケーションを閉じたときに文字列(クイズ名)や整数(質問番号)などの値を保存したいので、アプリが再起動保存した値を使用して停止したところから続行したい

これを行う方法...?

どんな体でも私がこれをするのを手伝ってくれますか....

ありがとう

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

java - JPA と固有フィールド

私のアプリには 2 つの永続オブジェクトがあります。モノとモノに添付されたタグです。このアプリは、タグが付けられたもののコレクションを生成できます。タグ オブジェクトには一意の名前があります (同じタグで何かを 2 回タグ付けしても意味がありません)。

Thing を (タグ オブジェクトが添付された状態で) 挿入すると、これらのタグ オブジェクトの一部が同じ名前でデータベースに既に存在している可能性があります。ここで、JPA について思い出せない部分があります。一意の制約に違反している場合、対応するオブジェクトをデータベースに追加しようとしないように JPA に指示する方法はありますか? または、最初にすべてのオブジェクトを取得し、次にコレクションをメモリにマージしてからすべてを書き戻すことなく、これを効率的に行う方法はありますか?

コレクション全体を一度に永続化することが可能かどうか、またはJPAを使用するときにすべてのオブジェクトに対して永続化を呼び出す必要があるかどうかも疑問に思っていますか?

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

java - Java永続性を使用してロック待機タイムアウトを再試行する方法は?

Java 永続性を使用する場合に、「再試行可能な」例外 (ロック待機タイムアウトなど) を再試行する正しい方法について、明確にする必要があります。たとえば、次のような疑似コードを使用します。

データベースにロックがある場合、em.persist 呼び出しで例外がスローされることがあります。それをtry/catchでラップして再試行できますか(明らかに、いくつかのカウントで)?それとも、tx.begin/commit 全体をラップしてやり直す必要がありますか?

どうも

0 投票する
5 に答える
1510 参照

delphi - Bold/Eco が提供する機能に近い Delphi 用のフレームワーク/ライブラリはありますか?

Borland/Codegear/Embarcadero の移行中に Bold/Eco に何が起こったのかはわかりませんが、Delphi の新しいバージョンでは確実に見逃しています。近いフレームワークを知っている人はいますか?

そうでない場合は、近いライブラリとコンポーネントの組み合わせを提案できるかもしれません。

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

oop - 永続性はオブジェクト アーキテクチャをどのように変更しますか?

PHPでクラスを扱っています。クラスを書いているとき、私はいつも「このオブジェクトは基本的に 1 回限りのものです。ページの読み込みを超えて持続することはありません」と考えています。その結果、私のクラスのすべてのロジックは、基本的に自分自身を構築し、いくつかの状態変更を行い、何らかのフィードバックを与えて終了します。ブラインシュリンプ。

このため、問題が発生した場合にユーザーにオブジェクトと対話させることができないため、ほとんどすべての問題をスローするために例外を使用することにしました。代わりに、ユーザーはページで何が起こったかについてのフィードバックを受け取り、フォームなどを再送信します。いずれにせよ、オブジェクトは数ミリ秒で死にかけようとしており、エラーを処理するための入力をこれ以上取得することはできません。

永続的なオブジェクトを使用する環境でプログラミングを行っていた場合、オブジェクトのメソッドが例外で終了する前に、オブジェクトでより堅牢な警告とエラーの報告と処理を行うと思われます。オブジェクトがまだエラーまたは警告状態でぶらぶらしている場合は、ユーザーからさらに入力を取得して続行できます。したがって、私のオブジェクトは見た目も動作も異なります。

私が尋ねているのは、「PHP ではオブジェクトの動作が他の言語とどのように異なるのか?」ということではないことに注意してください。むしろ、「PHP (またはその他の非永続的な環境) でオブジェクトを作成する場合、それらのオブジェクトは永続化できる場合とどのように異なるのでしょうか?」

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

objective-c - Core Data または NSKeyedArchiver なしで NSArrayController によって管理されるデータを保持するにはどうすればよいですか?

この質問の一見広範に見える性質をご容赦いただければ幸いですが、かなり具体的になります。

Core Data に独自の永続データ ストアを設定できないため、データ ストア (SQLite の変形) に SQLCipher を使用していることを除いて、他のほとんどのアプリケーションと同じように機能するドキュメント ベースの Cocoa アプリケーションを構築しています。また、私は本当にこれを使用する必要があります。

ドキュメント サブクラスには、NSMutableArrayという名前のプロパティがありますcategories。ドキュメント nib では、へのバインドがあり、配列コントローラへのバインドがありますNSArrayControllercategoriesNSCollectionView

配列内の各モデル オブジェクト (それぞれがCategory) は、基になるデータ ストア内のレコードにバインドされているため、カテゴリの一部のプロパティが変更されたときに を呼び出し[category save]、カテゴリがセットに追加されたときに、再度 を呼び出し、[category save]最後に、カテゴリが削除されたときに を呼び出します[category destroy]

私は部分的な解決策を配線しましたが、削除の要件でバラバラになり、それに関するすべてが間違ったツリーを吠えているように思えます。とにかく、ここで何が起こっているのですか:

ドキュメントと nib がすべて読み込まれたら、categories プロパティの観察を開始し、いくつかのデータを割り当てます。

ドキュメントが応答してデータストアを更新できるように、変更が通知されるような方法で監視メソッドを実装しました。

そのリストからわかるように (そして既にお気づきかもしれませんが)、categoriesプロパティを観察するだけでは十分ではありません。個々のカテゴリを観察して、属性 (名前など) が変更されたときにドキュメントに通知されるようにする必要があります。その変更をすぐに保存できること:

これは私には大したことのないように見えます。私はここで Cocoa に反対しているのではないかと思いますが、ほとんどの場合はうまくいきます。

除去以外。インターフェイスにボタンを追加し、それをアレイ コントローラのremove:アクションに割り当てるとcategories、ドキュメントのプロパティからカテゴリが適切に削除されます。

そうすることで、カテゴリがまだ監視されている間に割り当てが解除されます。

[category destroy]さらに、通知を受ける前にオブジェクトの割り当てが解除されたため、オブザーバーから呼び出す機会がありません。

Core Data より前のデータ モデルへの変更を保持するために、NSArrayController と適切に統合するにはどうすればよいでしょうか? ここで削除の問題をどのように回避しますか (または、これは完全に間違ったアプローチですか?)

アドバイスをよろしくお願いします!