17885
PlayFramework 2.2 with Javaを使ってアプリを作っています。

Modelの保存時に、追跡情報としてcreate_user_id/update_user_idを保存したいのですが、  
PlayFrameworkのModelからセッション情報を取り出せません。

現在は、保存時にControllerから毎回セッションから取り出したUserのエンティティを渡しているのですが、ひどい実装なので、  
Model.save()メソッドを呼び出したときに、Model側でセッションからログインユーザーを取得して  
保存してくれるような実装にしたいです。

何か、ベストプラクティスをご存知の方がいらっしゃいましたらご教授頂けませんか。

```

    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;
        }
      }
    }
    
```
CC BY-SA 3.0
2015-10-20T16:52:09.943
17869
2015-10-21T04:35:02.500
2015-10-20T17:48:29.407
12251
12251
question
java playframework
PlayFrameworkでModelからセッション情報を取得する方法はありますか？
Playのセッションを取り出す件については、`play.mvc.Http.Context.current().session()`を呼び出すと、`play.mvc.Http.Session`オブジェクトを取得できます。
CC BY-SA 3.0
2015-10-21T04:35:02.500
17885
2015-10-21T04:35:02.500
4464
17869
answer