我有以下代码创建/保存用户记录,数据库是默认的(内存中的H2)数据库。
我希望在用户实例上调用validateAndSave(GenericModel)API之后,用户将自动生成一个id。
但是我在客户端获得了404,即get方法中的notFoundIfNull代码失败。
这是正确的行为吗?
public static void add(String body) {
User user = new Gson().fromJson(body, User.class);
if (User.findBy(user.email) != null) {
badRequest();
}
user.validateAndSave();
get(user.id);
}
public static void get(Long id) {
User user = User.findBy(id);
notFoundIfNull(user);
render(user);
}
答案 0 :(得分:0)
您是否检查过是否将null作为ID传递给get
?很可能是你,因为你在内存中的用户将没有被刷新。
如果您必须重复使用id,请尝试执行此操作:
user = user.save();
我没有添加验证,因为现在你没有做任何事情。如果验证正常,则ValidateAndSave(请参阅code)返回true,否则返回false。你忽略了它,所以没有必要使用那种方法。
如果您仍想验证,请更好地分离步骤:首先验证然后保存以获取新ID。