問題タブ [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.
delphi - 実行時に発生するEClassNotFoundは、問題のクラスがコンパイル時とリンク時に存在し、コード内に明示的に存在する場合、実際にはどういう意味ですか?
フォームのrtlStreamingでランタイムエラーが発生し、TReader.ReadRootComponentの実行中に例外EClassNotFoundが発生しました。特定のエラーメッセージは「ClassnotfoundTActionList」です。
奇妙なことは:
- 私のメインフォームはアクションリストを使用しています。
- 楽しみのために、ActnList.pas(VCLソースフォルダーから)をプロジェクトに追加して、修正を試みました。
これは、数分前まで作業していたフォームをインスタンス化するときに発生します。私が行った変更は、いくつかのサブフレームコードにありました。ユニットテストとプロトタイプのために、いくつかのフレームをモックアップしているため、ifdefマーカーを使用してすべての実装セクションコードを削除しました。
プロジェクトにアクションリストクラスを追加しようとしましたが、さまざまなコンパイラとリンクオプションがある場合とない場合がありましたが、それでもこの例外が発生します。明らかに奇妙なことが起きています。この問題を解決するには、別の奇妙な方法があるはずです。
実際、本当に奇妙なことが起こっているようです。このエラーが発生すると、次の呼び出しスタックが発生します。
TReader.ReadDataInner(Instance:TComponent)では、nilは意図的なもののようです。
更新:この質問に対する答えは、メイソンが述べたように「シリアル化コンテキスト」を理解することだと思います。そして、私自身の愚かさを認める時が来ました。私は、フレームの親であることに気づかずに、プロジェクトからフレームの親を削除しました。TMyFrameParent
asの型宣言をスタブすることで欠落を回避しましたTMyFrameParent = class(TFrame)
。これにより、問題の条件が発生します。この例外が難解なケースでいつ発生するか、およびそれを修正する方法に注意することは将来本当に便利かもしれないと思うので、ここに質問を残します。特に、Masonは、「シリアル化コンテキスト」と、それらがクラス名検索にどのように適用されるかについて、非常に興味深い情報を持っています。
doctrine-orm - dbへの再保存を含むDoctrine2.1で永続化/更新アクションを投稿するにはどうすればよいですか?
doctrine 2.1(およびzendフレームワーク1.11、この問題では重要ではありません)を使用して、dbへの再保存を含むpostpersistおよびpostupdateアクションを実行するにはどうすればよいですか?
たとえば、生成されたばかりの主キーのIDに基づいて一意のトークンを作成したり、アップロードされた画像のサムネイルを生成したりします(実際には、データベースに再保存する必要はありませんが、それでも)?
編集-説明しましょう、私たちはしませんか?
上記は実際には2つのシナリオに関する質問です。どちらのシナリオも、次の状態に関連しています。
User
私が実体を持っているとしましょう。永続化のマークが付けられた後にオブジェクトがフラッシュされると、通常の自動生成されたmysqlのID(通常は1、2、3などで始まる実行番号を意味します)があります。
各ユーザーは画像をアップロードできます。彼はアプリケーションで使用できるようになります-データベースにもレコードがあります。だから私はという別のエンティティを持っていますImage
。各Image
エンティティには、自動生成されたIDもあります。これはユーザーIDと同じ方法です。
さて、シナリオは次のとおりです。
ユーザーが画像をアップロードするときに、データベースに保存された直後にその画像のサムネイルを生成したいと思います。これは、新しいイメージまたは更新されたイメージごとに発生するはずです。
スマートを維持しようとしているので、サムネイルを生成するコードを次のように記述したくありません。$ image = new Image();
...
$ entityManager-> persist($ image);
$ entityManager-> flush();
callToFunctionThatGeneratesThumbnailOnImage($ image);むしろ、
prePersist
またはpreUpdate
メソッドのように、オブジェクトの永続化(永続化されたオブジェクトのフラッシュ)で自動的に発生するようにしたいのです。ユーザーが画像をアップロードしたので、彼はその画像へのリンクを取得します。おそらく次のようになります
http://www.mysite.com/showImage?id=[IMAGEID]
。
これにより、誰でもこのリンクのimageidを変更するだけで、他のユーザーの画像を見ることができます。
そのため、このようなことを防ぐために、画像ごとに一意のトークンを生成したいと思います。それほど洗練されている必要はないので、画像IDのmd5値をソルトとともに使用することを考えました。
ただし、そのためには、そのイメージのIDを取得する必要があります(永続化されたオブジェクトをフラッシュした後にのみ取得します)。次に、md5を生成し、それをデータベースに再度保存します。
画像へのリンクは一般公開されているはずなので、認証されたユーザーに何らかの許可ルールで画像を表示させることはできません。
java - 持続性と顔
私は約 3 か月間、J2EE プロジェクトを学習/作業してきましたが、これは私が知っていることです..
- mysqlでデータベースを作成する方法(実際、私は12年間perlとphpでそれを行ってきました)
- データベース設計からエンティティを作成し、jsf または jsp ページを作成し、コントローラーとファサードを構築して、単純な作成、削除、および更新を処理するのに十分な、netbeans を一周する方法を見つけることができます。
- より複雑な1対多および多対多の関係を維持するためのマネージャークラスの構築に成功しました。ただし、隠しフィールドを使用して整数 ID を渡し、要求が行われるたびに多くのクエリを実行するため、私はまだ一種の CGI モードにいます。
- 私は顔を学び始め、顔を使うと仕事をするのがより速くおしゃれな方法であることがわかりました。
私の質問この開発モデルを使用して多対多の関係を維持するにはどうすればよいですか。3日間の調査で解決できません.....助けてください
事前に感謝します。すべての提案を真摯に受け止め、本当に簡単な新しいキャリアを考えてみます。
database - オブジェクトデータベース:クラス階層の変更
私はオブジェクト指向データベースに私を読んでいます。正しく知っていて、少しプレゼンテーションをしなければなりません。
私が得られず、どこにも見つからないものは、次の問題です:
クラス階層を変更すると、データベースのデータはどうなりますか。
たとえば、AがCから拡張されています。しかし、CがBから拡張され、BがAから拡張されていることに気付きました。
データベースに保存した(ユーザー)データはどうなりますか?
データベースが採用できなければ、データは使えなくなりますよね?たとえば、ソーシャルネットワークがある場合、すべてのデータが失われ、ネットワークを最初からやり直す必要があります...私はここにいますか、それとも何かが恋しいですか?
model-view-controller - おそらくコントロールアクションを介して、単一のクエリ文字列パラメーターを変更する方法は?
この 3 日間、私は簡単なことだと思っていたことを達成する方法を見つけるのに苦労しました。自分でこれを行ったり、Web で解決策を探したりしても、役に立ちませんでした。研究をするとき、何を探すべきかさえわからないからかもしれません。ここでできる限り説明しようと思います。誰かが助けてくれるかもしれません。
どのようにやっているのかは言いません。いろいろな方法でやろうとしましたが、どれもさまざまな理由でうまくいかなかったからです。あなたからの新鮮なアドバイスが欲しいです。
Web アプリケーションのほとんどのページには、次のような 2 つのリンクがあります (ただし、さらに多くのリンクがある可能性があります)。
- オプション A
- オプション B
これはコントローラー アクションによって返される部分的なビューです。
ユーザーは値または両方 (すべて) を選択できますが、いずれも選択できないわけではありません。つまり、少なくとも 1 つを常に選択する必要があります。
これらのリンクは、ほとんどすべてのページでアクセスできる必要があり、別のページにリダイレクトすることは想定されていませんが、アクションが返されたコンテンツをフィルタリングする必要がある場合に再利用できるように、この情報をどこかに保存するためだけに使用されます: 現在のコントローラーに関して常にアクセス可能な場所アクションまたはユーザー (認証されていないユーザーを含む) (セッション? Cookie?)。この情報は、Web アプリケーション全体で表示されるコンテンツをフィルタリングするために使用されます。
したがって、問題はそのビジネス ログを作成する方法ではなく、この情報を保存する方法 (および場所) です。
- クエリ文字列をいじらずに(つまり、クエリ文字列をできるだけ空/クリーンに保ちます)
- 他のページにリダイレクトせずに (コンテンツが異なるだけで、ユーザーは現在のページを取得する必要があります)
- ユーザーがもう一度クリックしてオプションを変更するまで、この情報がすべてのビュー間で保持されるようにします
私の目的は、すべてのオプションとその選択ステータス (オン/オフ) を含むモデルにこの情報を保存することです。これにより、適切な PartialView がそれらを表示する方法を知ることができます。また、このモデルをオプションの変更を処理する「もの」に送信することもできます。
ありがとう。
アップデート
Paul のアドバイスに従って、私は Session 方式を採用しました。
これに続いて、私はオーバーライドしました(「オーバーライドする」の正しい活用はわかりません:) OnActionExecuting():
GetOptionSelections()...
このコードはもっと良くなると思いますが、今はそれを機能させたいだけで、機能しません。
他にも問題があるかもしれませんが (実際には確かに)、主な問題は、OnActionExecuting が BaseController から継承するコントローラーの各アクションによって呼び出されるため、userOptionPreferences.Selected のオン/オフを切り替え続けることだと思いますが、私はしません。 GetOptionSelections() を各ビューで 1 回だけ呼び出す方法がわかりません: 古い Page_Load のようなものですが、MVC 用です。
最後の更新 AKA ソリューション わかりました、セッションの方法を使用して、この情報を保存することができました。
他の問題は実際にはこの質問のトピックではありませんでした。オプションの変更を処理する新しいアクションを作成して解決し、呼び出し元の URL にリダイレクトします (通常の returnUrl パラメーターを使用しますが、アクションパラメーターとして)。このように、オプションの変更は呼び出しごとに 1 回だけ行われます。
私が本当に好きではない唯一のことは、セッション値は変更されず、メモリ内の値のみが変更されるため、UserOptionPreferences プロパティを単純に操作できないことです。そのため、新しいオブジェクトのプロパティを設定する必要があります。毎回のステータス:大したことではありませんが、良くもありません。
ruby-on-rails - Rails でオブジェクトを永続化する方法
私は一種のルビーオンラインターミナルを実装しています(練習用です)。「端末」の入力を評価するメソッドを呼び出すために、単純な js Web アプリケーションから AJAX を使用しています。環境の問題を回避し、ユーザーが独自のオブジェクトを作成できるようにするために、「バインディング」オブジェクトを使用していました。問題は、バインディングを永続化する方法がわからないことです。
私の最初のアイデアは、ユーザーがアプリケーションにアクセスするたびに、投稿リクエスト間で持続するバインディングを作成することでした。その瞬間、一意のキーと新しいバインディングを使用して、キーとオブジェクトのペアが作成されます。次に、キーがクライアントに渡されます。ユーザーが ajax 経由で評価する文字列を送信すると、キーが送信されます。次に、バインディング オブジェクトを取得して更新します。
私は次のようなものを試しました:
しかし、実行時に、コードはキーと値のペアの作成に失敗します。実際、その行の後に実行しようとしたものはすべて失敗します。理由がわかりません。
実際、バインディングをシリアル化できれば機能すると思いますが、ネットワークの遅延とバインディングの潜在的な成長のため、非効率になる可能性があると思います。
c# - C# dll でオブジェクトを「永続的」に保つ方法は?
私は C# で dll を作成し、使用するクラスを提供しています。dll は、私が作成した C プログラムによって呼び出されます。(これは一部のプログラムのプラグインです。プラグインのコードは C で記述しなければなりませんが、.NET の機能を使用したいため、dll を使用したいと考えています)。
dll では、ストリームを開き、dll への 2 つの呼び出し間で永続化する必要があるその他の処理を実行したいと考えています。これは、プライベート メンバー コネクタによって次のコードで表されます。
InitializeE() を呼び出し、後で Timestep() を呼び出すと、Connector オブジェクトは NULL を指します。
C コードから Timestep() を呼び出すときに、Connector の作成前のインスタンスにアクセスできるようにするにはどうすればよいですか?
私はおそらくまったく間違った方向に検索します。どんなヒントでも大歓迎です。
ruby - 一時的なRubyインスタンスのオブジェクトを存続させるためのRubyデーモンプロセス
Rubyは、実行中のさまざまなRubyプロセス間で変数(さらに重要なことに、クラスオブジェクトやその他のデータの抽象化)を共有するメカニズムを提供していますか?
たとえば、クラスがインスタンス化され、初期化され、特定の状態に注意深く調整されている場合、その状態を、他の方法では独立しているすべてのRubyおよびIrbの実行で、最初に使用したプロセスの存続期間を超えて、グローバルに利用できるようにします。それ。
この問題に効果的に対処するために現在検討しているシナリオの1つは、選択した永続オブジェクトと変数のキーパーとして1日だけ機能するマイクロRubyスクリプトを作成し、デーモンgemなどでデーモン化することです。朝1日にセットアップし、夜にすべての終わりに分解します。
1日を通して、別のRubyプログラム(実際のビジネスロジックを含むもの)の多くのインスタンスが出入りしますが、上記のデーモンプロセスで存続している選択したオブジェクトを使用および操作できます。
複雑なオブジェクトをディスクにシリアル化する方法を研究する必要がありますか?(とにかく一時的なものであり、再作成には多くの時間しかかからないため、実際にはディスクではなくRAMを優先します)
c++ - クラスと構造体の内部ストレージ
ポインター magikry を使用して、バイト データをファイルに書き込む次のメソッドを使用して C++ クラスを保存したいと考えています。
パラメーター:
buffer
— 書き込まれるバイトデータを含むユーザー提供のバッファへのポインタlength
— バッファー長 (バイト単位)
例外:
E_SUCCESS
— メソッドは成功です。E_INVALID_STATE
— ファイルはまだ開かれていません。E_ILLEGAL_ACCESS
— ファイルが書き込み操作用に開かれていないか、権限が不十分なためにアクセスが拒否されました。E_INVALID_ARG
— 次のいずれかの状況が発生しました。- 指定されたバッファにはヌル ポインタが含まれています。
- 指定されたバッファー長が 0 以下です。
- ファイル ハンドルが無効です (ファイルが別の方法で閉じられているか、メモリが破損しています)。
E_STORAGE_FULL
— ディスク容量がいっぱいです。E_IO
— メディアが突然排出されたり、ファイルの破損が検出されたりして、予期しないデバイス障害が発生しました。
何らかのバッファリングがあるとは想定したくありませんが、各バイトがフラッシュのブロック全体を書き換える原因にはならないと確信していますが、たとえば、オブジェクトへのポインタ( )によるクラス(および静的フィールドなどの他のもの*this
)