我有以下ListProducts域對象;Grails GORM唯一約束條件
String name
Date lastUpdated
Date dateCreated = new Date()
String lastUpdatedBy
CatLists catLists //
Product product // has a composite primary key
ListProducts listProducts
static constraints = {
name nullable: true, blank: true
catLists nullable: false
lastUpdatedBy nullable: true
lastUpdated nullable: true
dateCreated nullable: false
product unique: 'listProducts'
}
static mapping = {
version true
table 'list_products'
sort "name"
}
產品領域類具有以下約束這是一個複合鍵
FOREIGN KEY (product_fulfillment_sku, product_merchant_id) REFERENCES product(fulfillment_sku, merchant_id)
,因爲它行得有一個主鍵,即ID爲表因下降到批處理作業,因此唯一值是SKU和商家ID。
我可以在list_products表中看到product_fulfillment_sku,product_merchant_id和cat_lists_id列,但是如何在grails域類中表示這種情況,以便產品無法添加(如果它已經存在)?
我想要實現的是一個產品可以在許多ListProducts分組中,但每個分組只有一次。
針對Postgres Sql數據庫的Grails v2.2.1!
任何想法?
J
因此,此處顯示的此域對象代表分組? – loteq
正確。所以我重構了代碼,以便catLists域對象添加並從列表中刪除項目。如果有人刪除了該列表,則ListProducts表中的所有引用也將被刪除。我從這個博客中獲得了一些啓發https://mrpaulwoods.wordpress.com/2011/02/07/implementing-burt-beckwiths-gorm-performance-no-collections/ – user1859465