有没有办法从PlayFramework中的模型中获取会话信息?

时间:2015-10-20 17:06:11

标签: java session playframework playframework-2.2 ebean

我用PlayFramework 2.2用Java创建应用程序。

保存模型时,我想将create_user_id / update_user_id保存为跟踪信息。 但是,无法从PlayFramework模型中检索会话信息。

目前,我在保存实体时从Controller传递User实体。 因为它是非常糟糕的实现,当您调用Model.save()方法从模型端的会话中获取登录用户时 我想要我们保存实施。

如果您了解最佳做法,请告诉我。

public abstract class AbstractTrailModel extends Model {

  public static final int INSERT = 1;
  public static final int UPDATE = 2;
  public static final int DELETE = 3;

  @ManyToOne(cascade = CascadeType.ALL)
  @Constraints.Required
  public User createUser;

  @ManyToOne(cascade = CascadeType.ALL)
  @Constraints.Required
  public User createUser;

  @Constraints.Required
  public Integer is_delete;


  public void save(User loginUser){

    if(create_time != null){
      setTrailInfo(UPDATE, loginUser);
      super.save();

    }else{
      setTrailInfo(INSERT, loginUser);
      super.save();
    }
  }


  public void setTrailInfo(int code, User loginUser){

    switch(code) {
      case INSERT:
        createUser = loginUser;
      case UPDATE:
      case DELETE:
        updateUser = loginUser;
    }

    if(code == DELETE){
      is_delete = 1;

    }else{
      is_delete = 0;
    }
  }
}

1 个答案:

答案 0 :(得分:1)

据我所知,它只能从Controller获取会话。 如果您需要模型类上的User,则需要将会话或User作为参数传递到您需要的任何位置。