2011-12-17 17 views
1

"Artist"と "Art"の1対多のORMオブジェクトの通常の例を使用して、 "Artist"の外部キーとしてラベル付けされたArtistIDという列のArtテーブルがあります。 (それは、驚き、アーティストテーブルの主キーを使用します)。外部キーを持つCF9 ORM EntityDelete

DELETEステートメントがREFERENCE制約 "FK_Art_Artists"と競合しました。このステートメントでは、特定のアーティスト(「thisArtist」と呼ばれる)がEntityDelete(「thisArtist」)にアクセスしようとしました。競合はデータベース "ArtistTracker"、テーブル "dbo.Art"、列 "ArtistID"で発生しました。

私は、私の関係の設定や、おそらく私の構文で、何かばかげたやり方をしていると確信しています。誰かがこれに遭遇しましたか? Artテーブルのエントリに外部キー制約がある場合、特定のArtistをEntityDelete()にする方法の例はありません。

答えて

2

あなたのアーティストは、おそらく「芸術」のプロパティを持っているでしょうか?それはArt CFCを指していると思われます。芸術のプロパティはおそらくプロパティ名= "芸術"のように見えます。cfc = "アート" fieldtype = "1対多";

ORMにアーティストを削除する場合の処理​​方法を教えてください。あなたの場合、 "カスケード"属性をartsプロパティに追加する必要があります:property ... cascade = "all-delete-orphan";

次に、エンティティを削除すると、Hibernateはそのアーティストに属する孤立したArt要素も削除します。

1対多リレーションシップを作成する場合は、ほとんどの場合、常に「1対多」とinverse = "true"を指定する必要があります。

+0

私はこれをカバーしており、最近のプレゼンテーションではORMに慣れていない人々に痛感を与える他の多くの事柄について説明します。コードはこちらです:https://github.com/marcesher/ormzen ここでは、プレコを見ることができます:http://cfmumbojumbo.com/cf/index.cfm/cfconferences/cfobjective-2011/orm-zen-marc-エッシャー/ –

関連する問題