我一直在使用 play 1.2.5rc4 开发一个应用程序,我发现了 Play 的一个有趣行为。看下面的代码:
User user = new User(some attributes...);
boolean userSaved = user.validateAndSave();
在调用新用户期间,我使用 validation.addError() 方法添加了一个验证错误。然后我希望在 validateAndSave() 期间它返回 false,因为验证已经包含一个错误。但事实并非如此。我想知道这是错误还是功能。我的意思是,当这种行为有用时,谁能想到一些用例?
另一个问题是,为什么 validateAndSave() 不是默认的 save() 方法?我希望如果我调用 user.save() 它不会保存违反约束的用户,但显然它确实如此(我有一个示例,违反 @Unique 约束的用户被插入到数据库中)。知道为什么这很有用吗?让方法 save() 表现为 validateAndSave() 和方法,例如 saveWithoutValidation() 不是更好吗?我可以看到导致很多问题的方法的当前命名。