シンプルなブログ アプリケーション、Grails 1.3.9 と MySQL、2 つのドメイン クラス間の多対多の関係、BlogPost と Tag
class BlogPost {
String title
String teaser
String body
Date updated
Category category
Integer priority
static hasMany = [comments:Comment,tags:Tag]
static belongsTo = [Category,Tag]
static searchable = true
String toString() {
"$title"
}
static constraints = {
title(nullable:false,blank:false,lenght:1..50)
teaser(nullable:false,blank:false,lenght:1..100)
body(nullable:false,blank:false,maxSize:5000)
updated(nullable:false)
category(nullable:false)
priority(nullable:false)
}
}
class Tag {
String name
String description
static hasMany = [blogpost:BlogPost]
static searchable = true
String toString() {
"$name"
}
static constraints = {
name(nullable:false,blank:false)
description(nullable:false,blank:false)
}
}
Hibernate は MySQL で 3 つの関連テーブルを作成します: blog_post、tag、および tag_blogpost
ここで、ブログ投稿 Y に関連するタグ X を作成してから Y を削除すると、孤立した行が tag_blogpost テーブルに残り、タグ X の表示ビューで「指定された識別子を持つ行が存在しません:[...] "
tag_blogpost テーブルの孤立した行を (カスケードで) 自動的に削除するにはどうすればよいですか?