package org.example.domain;
import com.avaje.ebean.event.BeanPersistAdapter;
import com.avaje.ebean.event.BeanPersistRequest;
/**
* Example which sets user id and name on insert and update of beans
* that extend AbstractModel.
*
* @author wjx
*/
public class BusinessBeanPersistAdapter extends BeanPersistAdapter {
@Override
public boolean isRegisterFor(Class<?> cls) {
return AbstractModel.class.isAssignableFrom(cls);
}
@Override
public boolean preInsert(BeanPersistRequest<?> request) {
Object bean = request.getBean();
AbstractModel model = (AbstractModel) bean;
// Typically get user details from a ThreadLocal security context
String userId = "CreatorId";
String userName = "CreatorName";
model.setCreatorId(userId);
model.setCreatorName(userName);
model.setModifierId(userId);
model.setModifierName(userName);
return super.preInsert(request);
}
@Override
public boolean preUpdate(BeanPersistRequest<?> request) {
Object bean = request.getBean();
AbstractModel model = (AbstractModel) bean;
// Typically get user details from a ThreadLocal security context
String userId = "ModifierId";
String userName = "ModifierName";
model.setModifierId(userId);
model.setModifierName(userName);
return super.preUpdate(request);
}
}