我有一个带有-simplified - Domain类的Grails应用程序,如下所示:
class Capacity {
static constraints = {
month(blank:false, nullable:false)
company(blank:false, nullable:false)
}
Date month
Company company
String note
...
}
month-company 对必须是唯一的。 (即他们应该是DB的主键)。
如何定义这样的约束?
提前多多感谢
路易斯
答案 0 :(得分:6)
由于您希望在数据库中将其设为composite primary key,因此您必须声明该映射:
class Capacity implements Serializable {
Date month
Company company
String note
...
static mapping = {
id composite:['month', 'company']
}
}
生成下表(MySQL):
CREATE
TABLE capacity
(
MONTH DATETIME NOT NULL,
company_id bigint NOT NULL,
version bigint NOT NULL,
note VARCHAR(255) NOT NULL,
PRIMARY KEY (MONTH, company_id),
INDEX FKFBF514BA69595C7A (company_id)
)
ENGINE=MyISAM DEFAULT CHARSET=latin1
答案 1 :(得分:5)
应该是这样的:
static constraints = {
month(blank:false, nullable:false, unique:'company')
company(blank:false, nullable:false)
}