unique

用途

设置一个属性在数据库层的唯一性(不可以有该属性相同的记录)。

举例

login(unique:true)

描述

如果某属性必须是唯一的则把该约束设为true(这是持久层的方法,会查询数据库)。

要小心的是(尽管不常见),可能唯一性约束验证通过了但保存到数据库的时候出错,因为唯一性约束是数据库层的。可以使用SERIALIZABLE事物处理(性能差)或主动捕获抛出的异常。

可以把相同类中的其他属性(一或多)设定为当前属性的unique范围,也就是说,这俩个属性对(或多个属性的组合)的值必须是唯一的。

例子:

group(unique:'department')

上面例子中,相同值的departmentgroup值必须不同,但不同的departmentgroup值可以相同。

例子:

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

上面的例子中,相同的groupdepartmentlogin必须不同,但不同的groupdepartment中的login可以相同。

这个约束会影响scheme的生成(schema generation)。

错误代码:className.propertyName.unique