调用genericmodel validateAndSave方法不会自动生成记录id
我有以下创建/保存用户记录的代码,数据库是默认的H2内存数据库 我希望在用户实例上调用GenericModelAPI的validateAndSave后,用户将自动生成一个id 但我在客户端得到了一个404,即get方法中的notFoundIfNull代码失败 这是正确的行为吗调用genericmodel validateAndSave方法不会自动生成记录id,model,save,playframework,Model,Save,Playframework,我有以下创建/保存用户记录的代码,数据库是默认的H2内存数据库 我希望在用户实例上调用GenericModelAPI的validateAndSave后,用户将自动生成一个id 但我在客户端得到了一个404,即get方法中的notFoundIfNull代码失败 这是正确的行为吗 public static void add(String body) { User user = new Gson().fromJson(body, User.class); if (User.find
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);
}
您是否已检查是否将null作为id传递以获取?很可能是这样,因为内存中的用户尚未刷新 如果必须重复使用id,请尝试执行以下操作:
user = user.save();
我没有添加验证,因为现在您没有对其进行任何操作。ValidateAndSave see如果验证正常,则返回true,否则返回false。您正在忽略它,因此使用该方法没有意义
如果仍要验证,最好将以下步骤分开:首先验证,然后保存以获取新id