問題タブ [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 投票する
2 に答える
7090 参照

asp.net-mvc-3 - MVC3 マルチ ステップ フォーム - モデル オブジェクトを永続化する方法

1 つのモデル オブジェクトを使用するマルチ ステップ フォームがあり、ステップ間で保持する必要があります。オブジェクトは、最終ステップの後にのみデータベースに保存されます。HTML.Serialize の使用を提案している人を見たことがありますが、このオプションはどのくらい安全ですか?

また、ユーザーがフォームに入力すると、モデル オブジェクトが大きくなります。つまり、シリアル化されたデータを含む非表示のフォーム フィールドのサイズが HTML 出力に追加されます。

この種の状況のベストプラクティスは何ですか?

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

java - Hibernate @Id @GeneratedValue アノテーションが、DB2 データベースによって生成されたインクリメント ID を認識しない

Hibernate 3 を使用して DB2 v9.x に 2 番目のレコードを挿入すると、DB2 によって生成された一意の主キー列 ID を持つ列が、Hibernate エンティティの永続化では機能しません。

最初のレコードの挿入は正常に機能しますが、セッターを使用して手動で値をインクリメントして設定しない限り、それ以上のレコードを永続化することはできません。@GeneratedValue をコメントアウトしようとしました....これを正しく使用していますか? Hibernate に Id 列を自動インクリメントさせたくありません。DB2 自体によって生成されたインクリメントされた ID を使用して、次の行を挿入したいと考えています。ありがとう:)

これは私のコードです:

Id を生成するために DB2 create table スクリプトに追加された制約:

これは例外です:

Hibernate: RPS.TMRT に挿入 (MRT_APRNUM、MRT_CHKLOC、MRT_DPTCDE、MRT_FUNCDE、MRT_MDCNUM、MRT_MDCRSLCDE、MRT_MDCRSLDTE、MRT_OCCCDE、MRT_QIDNO、MRT_REGDTE、MRT_REMARK、MRT_SECCDE、MRT_SMP、MRT_USRID、MRT_VISNUM、MRT_APLYER ?、MRT_APLYER NUM、MRT_APLYER ? ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 15-Mar-2011 17:37:44 org.hibernate.util.JDBCExceptionReporter logExceptions警告: SQL エラー: -803、SQLState: 23505 15-Mar-2011 17:37:44 org.hibernate.util.JDBCExceptionReporter logExceptions SEVERE: DB2 SQL エラー: SQLCODE: -803、SQLSTATE: 23505、SQLERRMC: 1;RPS。 TMRT 15-Mar-2011 17:37:44 org.hibernate.event.def.AbstractFlushingEventListener performExecutions SEVERE: データベースの状態をセッション org.hibernate.exception.ConstraintViolationException と同期できませんでした: 挿入できませんでした: [qa.gov.moi.rps .db.エンティティ。Medical_MRT] org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71) で org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) で org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister) .java:2272) org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2665) で org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:60) で org.hibernate.engine.ActionQueue。 org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263) で実行 (ActionQueue.java:279) org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167) で org.hibernate.event.def org.hibernate の .AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)。event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27) org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000) org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338) org .hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106) の org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:54) の qa.gov.moi.rps.db.helper.MedicalHelper.create(MedicalHelper) .java:74) で qa.gov.moi.rps.db.helper.MedicalHelper.main(MedicalHelper.java:285) で sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブ メソッド) で sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl) で.java:39) で sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) で java.lang.reflect.Method.invoke(Method.java:597) で com.intellij.rt.execution.application.AppMain.main(AppMain.java:115) 原因: com.ibm.db2.jcc.c.SqlException: DB2 SQL エラー: SQLCODE: -803、SQLSTATE: 23505、SQLERRMC: 1; com.ibm.db2.jcc.c.fg.d(fg.java:1340) の RPS.TMRT (com.ibm.db2.jcc.b.gb.k(gb.java:351) の com.ibm)。 com.ibm.db2.jcc.bwa(w.java:52) の db2.jcc.b.gb.a(gb.java:60) com.ibm.db2.jcc.b.wb.c(wb. java:213) com.ibm.db2.jcc.c.gg.ab(gg.java:1779) com.ibm.db2.jcc.c.gg.d(gg.java:2324) com.ibm .db2.jcc.c.gg.W(gg.java:457) の com.ibm.db2.jcc.c.gg.executeUpdate(gg.java:440) の org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher) .java:23) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2252) ... 18 さらに javax.persistence.RollbackException:qa.gov の qa.gov.moi.rps.db.helper.MedicalHelper.create(MedicalHelper.java:74) の org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:71) でトランザクションをコミット中にエラーが発生しました。 moi.rps.db.helper.MedicalHelper.main(MedicalHelper.java:285) の sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブ メソッド) の sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) の sun.reflect. DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:115) : org.hibernate.exception.ConstraintViolationException: 挿入できませんでした: [qa.gov.moi.rps.db.entity.Medical_MRT] at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71) org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2272) で org.hibernate.persister.entity.AbstractEntityPersister で org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) で.insert(AbstractEntityPersister.java:2665) org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:60) org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279) org.hibernate.engine. ActionQueue.executeActions(ActionQueue.java:263) org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167) org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298) org.hibernate .event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27) org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000) で org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338) で org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java) :106) at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:54) ... さらに 7 原因: com.ibm.db2.jcc.c.SqlException: DB2 SQL エラー: SQLCODE: -803、SQLSTATE : 23505、SQLERRMC: 1; com.ibm.db2.jcc.c.fg.d(fg.java:1340) の RPS.TMRT com.ibm.db2.jcc.b.gb.k(gb.java: 351) com.ibm.db2.jcc.b.gb.a(gb.java:60) com.ibm.db2.jcc.bwa(w.java:52) com.ibm.db2.jcc.b .wb.c(wb.java:213) at com.ibm.db2.jcc.c.gg.ab(gg.java:1779) at com.ibm.db2.jcc.c.gg.d(gg.java) :2324) com.ibm.db2.jcc.c.gg.W(gg.java:457) com.ibm.db2.jcc.c.gg.executeUpdate(gg.java:440) org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:23) で org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2252) ... 18 もっと見る

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

orm - ORM と持続性フレームワークの違いは何ですか?

私は OOP 設計パターンとフレームワーク設計について読んでいて、 ORMPersistence Frameworkという用語の違いについて少し自信がありません。ORM は PF の一種ですか? この 2 つに期待できるさまざまな機能は何ですか?

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

java - Androidアプリケーション/アクティビティのライフサイクル:いつフラッシュに保存する必要がありますか?

多くのアクティビティで構成されるアプリがあります。各アクティビティは、何らかの方法でプロジェクトを変更できます。いくつかのオブジェクトをシリアライズしてフラッシュに保存することで、このプロジェクトをフラッシュに保存しています。ここで、ユーザーがアプリを離れると、OS によって強制終了される可能性があります。したがって、すべてのアクティビティで onPause() ごとに保存する必要があります..

しかし、これは非常に愚かで消費量が多いです (シリアル化、ファイルを開く、ファイルを上書きする...)。

もっと良いアイデアはありますか?ところで、データベースを使用したくない場合、プロジェクトを保存するにはオブジェクトのシリアル化で十分ですか、それともより堅牢なもの (xml?) を使用する必要がありますか?

説明と提案をありがとう..

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

design-patterns - ビジネスエンティティには永続性機能が含まれています

ビジネスオブジェクトに独自の永続化メカニズムが含まれるパターンの名前はありますか?例えば:

私はこのデザインの支持者ではありません-名前があるかどうかだけ知りたいです。

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

java - Hibernateアノテーションを使用してオブジェクトを保存しますか?

Hibernateアノテーションを使用してデータベースを作成した後、オブジェクトを作成する方法を知りたいのですが。

以下のコードを実行すると、オブジェクトを含むデータベースが作成されますが、2回目に実行すると、まったく同じものが作成され、新しいオブジェクトは追加されませんか?どうして?アノテーション付きのデータベースを作成した後、メソッド.saveでアノテーションを使用してオブジェクトを作成するにはどうすればよいですか?または、注釈を使用してこれを行うことはできませんか?

前もって感謝します。

ここにコードperson.classがあります

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

grails - Grails で GORM セーブ コールを明示的にフラッシュする必要はありますか?

GORM キャッシュの問題を示しているように見える奇妙な状況があります

最後の 2 つのクエリが異なる結果を返す理由がわかりません。

ただし、次のようにbook.save(flush:true)を変更すると。どちらの println ステートメントもすべての本を返します。

これは単一のアプリケーション内では必要ないという印象を受けました。

参考までに私が使っている

  • データベース: mysql
  • グルービー: 1.7.10
  • グレイル: 1.3.7

@ホアンロング

私の問題を以下に示します。特定のパターンではなく、action1/action2 の両方が何度も呼び出されたとします。

1 つの解決策は、アクション 1 によって設定され、必要に応じてフラッシュするためにアクション 2 によって使用されるフラグを持つことです。私の問題は、これが非常に複雑なソリューションであり、DB 呼び出しの複雑さが増すにつれて拡張できないことです。

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

python - Python:スクリプトの複数の呼び出し間でオブジェクトインスタンスを共有する方法

私は外部プログラムへのPythonインターフェースを提供するライブラリを使用しています。これにより、次のものを作成できます。

上記のコードは、Python内から制御できるFooプログラムの新しいインスタンスを開始します。

複数回呼び出す必要のあるPythonスクリプトがあり、外部パラメーターに応じて、外部Fooプログラムの単一のインスタンスにさまざまなことを実行するように指示します。明らかに私にはできません

foo = Foo()毎回、

これは、スクリプトが実行されるたびにFooの新しいインスタンスが作成されるためです。

私がやりたいのは、foo= Foo()一度作成して、複数の呼び出しで同じインスタンスを共有することです。現在、私はそれを一度作成し、シリアル化し、スクリプトに逆シリアル化させることを考えています。このアプローチは機能しますか?より良い代替案はありますか?

ありがとう!!

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

orm - エンティティに非永続変数があっても大丈夫ですか?

ORM を使用する場合、計算にのみ使用され、安全に削除できるいくつかの非永続的なプロパティを持つモデル クラスを持つことは、ある種の良い習慣を破っていますか?

Product があるとしましょう。この製品には、可能なオプションのリストがあります。オプションは、製品の価格に影響を与える場合があります。また、1 つのオプションが選択されると、別のオプションの価格が変わるという一連のルールもあります。

選択したオプションとともに製品を注文に追加する場合、まず、選択した各オプションに影響するルールに基づいて、すべてのオプションの価格を再計算する必要があります。次に、選択したすべてのオプションを使用して製品の最終価格を計算できます。

この例では、Option は、選択された Options のコンテキスト内でのみ意味を持ち、Product が Order に追加された後に安全に削除できる、calculatedPrice プロパティを持つことができます。

この問題について考えるより正しい方法はありますか、それとも問題ありませんか?

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

doctrine-orm - Doctrine2 ODM との特定の関係の永続化に関する問題

Doctrine 2 MongoDB ODMを使用していますが、1 つの特定の関係を除いてすべて正常に動作しています。あいまいなのは、プロジェクト内に一見同一の関係があり、それらがすべて正常に機能することです。

Project\Entities\PlayerCharacter で使用 (上記の Project\Entities\World\Object を拡張) =>

$world 変数を設定すると、PHP スクリプトで問題ありません。$objectManager->refresh($character), $character->getWorld() === $world でも問題ありません。ただし、データベース自体には表示されず (設定直後に終了し、どこかで誤って変更されないようにフラッシュします)、PlayerCharacter 側でのみ World 側にのみ表示されます

一方で

=>

作品

簡易版では:
- PlayerCharacter::$user <==(1:N)==> User::$characters
(およびその他すべて) は問題ありませんが、
- PlayerCharacter::$world <==(1:N)のみです。 ==> World::$playerCharacters
は World 側でのみ機能します

何日も見ていると、何も違うものを見つけることができません。

  • プロパティ名の名前を変更しようとしましたが、変更はありません
  • キャラクターのハイドレーター エントリ ---> ワールドが他と同じように見える
  • エントリを半手動で (RockMongo 経由で) 追加すると、正常に動作します
  • 「ワールド」フィールドを NULL として作成しても違いはありません。{} を使用すると、「未定義のインデックス: $id」と表示されますが、これは予想される動作だと思います。
  • エンティティも個別に非常にうまく機能します。実際には、この 1 つの関係だけです。

不足している/見落とされているものはありますか、または永続化されない理由を発見するために何ができますか?

(さらに情報が必要な場合は投稿を編集します)

ありがとうございました!