1

ColdFusion の ORM アプリで別の問題が発生しています。新しい子オブジェクトを挿入しようとすると、以下のエラーが発生します。更新は正常に機能します。

この例外の根本的な原因:

これは orm cfc です:

<cfcomponent persistent="true"
      table="T_BREED_PAGE_TEXT_CONTENT_WEB" 
      schema="akc"  >

    <cfproperty name="KEY_TEXT_CONTENT" fieldtype="id"   generator="sequence" params="{sequence='akc.seq_breed_page_display'}" />
    <cfproperty name="TEXT_TITLE_TEXT" />
    <cfproperty name="TEXT_ICON_IMAGE" />
    <cfproperty name="TEXT_CONTENT" />
    <cfproperty name="KEY_BREED_PAGE" />
    <cfproperty name="CDE_BLOCK_ID"  />
    <cfproperty name="breedPage" cfc="breedPage" fieldtype="many-to-one" fkcolumn="KEY_BREED_PAGE" />
    <cfproperty name="pageBlocks" cfc="pageBlocks" fieldtype="many-to-one" fkcolumn="CDE_BLOCK_ID" />
</cfcomponent>

私はcoldfusionインクリメントジェネレーターで試してみましたが、同じエラーが発生して手動で値を設定しました. シーケンスを使用した通常の cfquery 挿入は正常に機能します。これの修正について何か考えはありますか?

ありがとう

4

2 に答える 2

0

generator = "identity"を試し、dbにPKを自動インクリメントさせましたか?

于 2012-05-02T18:19:19.587 に答える
0

奇妙なことに、以前の回答を投稿した後、非常によく似た問題に遭遇しました。hibernate のロギングの詳細に入り、save メソッドが実際に何をしているかを分析した後、アドレス オブジェクトの配列を使用してユーザー オブジェクトを保存する際に、アドレスを削除した後、hibernate がアドレス レコードの FK userID フィールドを NULL にしましたが、私のスキーマでは NULL が許可されませんでした。Addresses プロパティに inverse="true" を設定すると解決しました。おそらくあなたの問題は多少似ています。

新しい子を挿入していると言うとき、例外がスローされるのは正確にはどこですか? あなたが呼び出している ORM 関数を知りたいです。

そのオブジェクトを何と呼べばよいかわかりませんが、議論のために SubBreed() と呼びましょう SubBreed.setBreedPage(new BreedPage); その後、entitySave(SubBreed)? それともまったく別のものですか?

于 2012-05-18T20:02:46.133 に答える