在 Ebean 和 Dropwizard 中找不到处理

Handling not found in Ebean and Dropwizard

我在 resources 中有以下代码:

@GET
@Timed
@Path("/{username}")
public Object findUserByUsername(@PathParam("username") String username){
    User user = Ebean.find(User.class)
            .setDisableLazyLoading(true)
            .where()
            .eq("username", username)
            .findUnique();
    if(user != null) {
        return Response
                .status(Response.Status.OK)
                .entity(Ebean.json().toJson(user))
                .build();
    }else{
        return Response
                .status(Response.Status.NOT_FOUND)
                .build();
    }
}

我希望能够处理 Ebean 上发生的错误,就像在这种情况下,如果给定的 username 没有 User,我想构建一个自定义响应。但是当 Ebean.find() 找不到匹配的数据时,它已经 returns 默认错误页面。我如何自定义此行为?

要防止显示默认页面,只需向 Response 提供 .entity() 和错误代码,它将用模型 json 替换默认页面在 .entity().

里面