Reputation: 1220
What techniques are people using to efficiently do prevent cascading delete on a large collection of classes?
I have the following domain classes: But when I delete a category item then it also delete all genericProduct item which are relation to category. Now How can i prevent this
class Category {
String name
static hasMany = [manufacturers: Manufacturer, genericProducts:GenericProduct]
static mappedBy = [genericProducts:'categories']
AuditUser audit = new AuditUser()
static embedded = ['audit']
static constraints = {
name blank: false, size: 0..60, unique: false
}
static mapping = {
table 't01i001'
id column: 'f_category_id'
name column: 'f_name', length: 60
version column: 'f_revision'
manufacturers joinTable: [name: 't01j001', key: 'k_category_id', column: 'k_manufacturer_id']
}
and
class GenericProduct {
String name
static belongsTo = [categories:Category]
static hasMany = [brands:Brand]
static mappedBy = [brands:'genericProducts']
AuditUser audit = new AuditUser()
static embedded = ['audit']
static constraints = {
name blank: false, size: 0..60, unique: false
}
static mapping = {
table 't01i003'
id column: 'f_generic_product_id'
name column: 'f_name', length: 30
categories column: 'f_cat_id', length: 30
version column: 'f_revision'
}
Upvotes: 1
Views: 335
Reputation: 1220
Next time i add some configeration for prevent cascade delete then it works
class Category {
String name
static hasMany = [manufacturers: Manufacturer, genericProducts:GenericProduct]
static mappedBy = [genericProducts:'categories']
AuditUser audit = new AuditUser()
static embedded = ['audit']
static constraints = {
name blank: false, size: 0..60, unique: false
}
static mapping = {
manufacturers cascade: 'save-update'
genericProducts cascade: 'save-update'
table 't01i001'
id column: 'f_category_id'
name column: 'f_name', length: 60
version column: 'f_revision'
manufacturers joinTable: [name: 't01j001', key: 'k_category_id', column: 'k_manufacturer_id']
}
Upvotes: 2