(快速参考)

unique

用途

将一个属性约束为数据库级别的唯一属性

示例

username unique: true

说明

如果属性必须唯一,则设置为 true。这是一个持久调用,将查询数据库。

以下情况(尽管实际上不太可能发生)有可能通过唯一性验证,但随后的保存会失败。如果在 Grails 检查和实际保存你的实例之间发生另一个保存或更新以更新数据库,则调用会失败。防止这种情况的唯一方法是在 SERIALIZABLE 隔离级别使用事务,但这对性能非常不利。

还可以通过声明要包括的其他字段作为参数值来定义多列 unique 约束。如果有另一个字段,请指定其名称,但如果有多个字段,可以使用列表,例如

示例

group unique: 'department'

在此示例中,group 名称在一个 department 中必须唯一,但不同部门中可能会存在同名组,即组名本身并不唯一。

另一示例

username(unique: ['group', 'department'])

在此示例中,usernamegroupdepartment 中必须唯一。不同组或不同部门中可能存在相同的登录名。

此约束会影响 模式生成.

错误代码:className.propertyName.unique