2012-05-02 11 views
1

ColdFusionのORMアプリケーションに別の問題があります。新しい子オブジェクトを挿入しようとすると、以下のエラーが表示されます。アップデートは正常に動作します。ColdFusion ORMエラーが子テーブルに挿入されています

この例外の根本的な原因は: coldfusion.orm.hibernate.HibernateSessionException: [Macromedia社] [OracleのJDBCドライバ] [Oracleの] ORA-01400:。( "AKC" にNULL を挿入することはできません」 T_BREED_PAGE_TEXT_CONTENT_WEB "、" KEY_TEXT_CONTENT ")。

これは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> 

Iは、ColdFusion増分発生とそれを試み、ならびに生成同じエラーで手動で値を設定しています。シーケンスを使用する通常のcfquery挿入が正常に動作します。これに対する修正の考えはありますか?

おかげ

答えて

0

あなたは発電機=「アイデンティティ」を試してみて、DBの自動インクリメントPKを持っていましたか?

+0

ただし、oracleにIDタイプはありません。私が必要とするのは数値で、cf incrementと同じエラーで失敗するハードコードされた値を使ってみました。ありがとう – user1361721

0

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

新しい子を挿入しているとしたら、例外はどこにスローされますか? ORMの機能について知りたいのですが、興味があります。

そのオブジェクトをどのように呼び出すべきかわかりませんが、議論のためにSubBreed()を呼び出してください。 SubBreed.setBreedPage(new BreedPage);次にentitySave(SubBreed)?それとも全く別のもの?

関連する問題