Tôi sử dụng grails 2.0.0. Tôi có ba đối tượng Thành viên, Sản phẩm và Loại sản phẩm. Thành viên có nhiều Sản phẩm và là mối quan hệ một-nhiều. Các điểm sản phẩm cho ProductType (bảng tham chiếu) và là một mối quan hệ nhiều-một. Câu hỏi của tôi là xóa Sản phẩm. Nó hoạt động trong một kịch bản chứ không phải trong một kịch bản khác. Đọc tiếp.Grails một trong rất nhiều ánh xạ đánh giá trên phím tổng hợp
phác thảo thô của ánh xạ dưới đây:
Member.groovy:
class Member {
Long id
....
SortedSet products
static hasMany = [products:Product]
static mapping = {
table 'T_MEMBER'
id column:'MEMBER_ID'...
products cascade: "all-delete-orphan"
}
}
Product.groovy:
class Product {
Long id
ProductType productType
...
static belongsTo = [member:Member]
static mapping = {
table 'T_PRODUCT'
id column:'PRODUCT_ID'
member column: 'MEMBER_ID'
productType column: 'PRODUCT_TYPE'
...
}
}
ProductType.groovy:
class ProductType {
Long id
..
static mapping = {
table 'T_PRODUCT_TYPE'
id column:'PRODUCT_TYPE', generator:'assigned'
...
}
}
Tôi đã nhận mã phục vụ khách hàng một phác thảo trong số đó là ...
if((newMember.products) && (newMember.products.size() >0)) {
def addList = newMember.products - existingMember.products
def removeList = existingMember.products- newMember.products
removeList.each { product ->
existingMember.removeFromProducts(product)
}
addList.each {product ->
existingMember.addToProducts(product)
}
}
Cho đến nay rất tốt. Điều này hoạt động hoàn hảo. Tuy nhiên khi tôi giới thiệu khóa chính tổng hợp cho bảng T_PRODUCT bằng cách làm như sau:
static mapping = {
table 'T_PRODUCT'
//id column:'PRODUCT_ID'
id composite:['member', 'productType']
member column: 'MEMBER_ID'
productType column: 'PRODUCT_TYPE'
...
}
tôi có được điều này:
org.hibernate.StaleStateException: cập nhật hàng loạt upda hàng loạt trở đếm hàng bất ngờ từ cập nhật [0]; số hàng thực tế: 0; dự kiến: 1 org.hibernate.StaleStateException: Cập nhật hàng loạt được trả lại bất ngờ số lượng hàng từ bản cập nhật [0]; số hàng thực tế: 0; mong đợi: 1 tại ProductService.cleanUpGorm (ProductService.groovy: 442) tại ProductService.maintainProduct (ProductService.groovy: 213) tại ClientService $ _maintainMembers_closure5.doCall (ClientService.groovy: 158) tại ClientService.maintainMembers (ClientService.groovy : 152) tại ClientService.processMembers (ClientService.groovy: 394)
Bất kỳ ý tưởng nào tôi có thể gặp sự cố?
không có nghĩa là static attributeTo = [member: Member] thay vì static dependsTo = [member: Product]? – loteq
Đó là một lỗi đánh máy. sửa chữa nó. Cảm ơn. – arrehman
Có thể cung cấp trường hợp kiểm tra không? –