public abstract class EntityController<T,Q> {
 
	public String home(Model m, Q query, BindingResult errors) {...}
	
	public String findForm(EntityPageable pageable, Model m, Q query, BindingResult e){...}
	
	public String find(EntityPageable pageable, Model m, Q query, BindingResult e){...}
	
	public String read(Model m, T entity, BindingResult e) {...}
	public String createForm(Model m, T entity, BindingResult e) {...}
	
	public String create(Model m, T entity, BindingResult e) {...}
	public String updateForm(Model m, T entity, BindingResult e) {...}
	
	public String update(Model m, T entity, BindingResult e) {...}
	
	public String delete(Model m, T entity, BindingResult e) {...}
}
	T : Entity Object Command or form object
Q : Entity Query Object , Command or form object