保存數據庫會話中的值我有一個獲取userId和另一個屬性來保存和保存在我的數據庫中的問題,如審計操作並在保存或更新任何bean之前保存數據庫中的createdBy和modifiedBy,我發現在這個問題上的createdBy和modifiedBy有用的答案:Is it possible to use @PrePersist and @PreUpdate with eBean and Play! 2.0?:是否有可能通過模型
這是我的課:
@MappedSuperclass
public abstract class BaseModel extends Model {
@Id
@Column
@GeneratedValue(strategy=GenerationType.AUTO)
public Integer id;
@Column
@CreatedTimestamp
public Timestamp createdDate;
@Column
@UpdatedTimestamp
public Timestamp updatedDate;
@Column
@Version
private long version=0;
@Column
public String updatedBy;
@Column
public String createdBy;
public BaseModel() {
}
@Override
public void save() {
boolean isInstanceOfAccount = this instanceof Account;
if (!isInstanceOfAccount) {
int userId = Integer.parseInt(session().get(ViewModelsConstants.User.USER_ID);
updatedBy = String.valueOf(userId);
// etc to
}
super.save();
}
}
你可以注意到,我有重寫保存方法(所以我會做到及時更新),所以當我打電話給我的bean時,如product.save()
我保存id
誰添加或更新誰。但我有一個類似的懸而未決問題Session inside Model in play framework,
我也許可以添加方法有參數保存和調用超級喜歡:
public void save(int userId) {
boolean isInstanceOfAccount = this instanceof Account;
if (!isInstanceOfAccount) {
updatedBy = String.valueOf(userId);
// etc to
}
super.save();
}
但我有已經存在的代碼,我不想做修改在我所有的課,如果我想添加更多或刪除我需要再重構
什麼最酷的(最佳實踐)解決方案,這個參數?
我現在簡單的愚蠢問題:我如何能夠從會話傳遞給模型,或者當我保存或更新它時如何保存參數(像登錄時的userId)在模型中使用的地方?