【发布时间】:2012-10-16 17:04:47
【问题描述】:
我有一个简单的 User 模型,其字段使用如下所示的播放验证注释和 morphia 注释进行注释。
import play.data.validation.*;
import play.modules.morphia.Model;
import com.google.code.morphia.annotations.*;
@Entity
public class User extends Model{
@Id
@Indexed(name="USERID", unique=true)
public ObjectId userId;
@Required public String userName;
@Email
@Indexed(name="USEREMAIL", unique=true)
@Required public String userEmail;
}
现在我有一个服务,它有一个负责持久化数据的 CreateNewUser 方法。我使用 Morphia 插件来支持 dao。 但问题是,即使 userName 或 userEmail 为 NULL,用户文档也会保留在 mongo-db 中。 @Email 验证也不会发生
// Below code is in app/controllers/Application.java
User a = new User();
a.userName = "user1";
// calling bean to create user, userService is in app/service/UserService
userService.createNewUser(a);
即使添加了@valid 和validation.hasErrors() 也不起作用。下面的代码在app/service/UserService 中
public void createNewUser(@Valid User user) {
if (Validation.hasErrors()) {
System.out.println("has errors");
} else {
// TODO Auto-generated method stub
userDao.save(user);
}
}
【问题讨论】:
标签: mongodb playframework playframework-1.x morphia