dorado 分页查询
public void findbypage(page<entity> page){
dao.getALl(page);
}
dorado的datapilot默认不会过滤
showfilterBar设置过滤蓝的开启
filterMode:true是设置服务器端的过滤开启
public void filter(Page<entiry> page,Criteria criteria){
DetachedCriteria detachedCriteria=
DetachedCriteria.forClass(SlEmployee.class);
if(criteria!=null){
dao.find(page,hibernatUtiles.filter(detachedCriteria,criteria))
}
else{
dao.getAll(page);
}
}
如果autofrom要获得表格的值时候,要get(“entity”),然后再一一获得表格属性内容
根据session的值获取用户填充datagride
public Collection<Entiy> getEntybyName(String name){
Map p=HashMap();
if(StringHelper.isNotempty(p)){
p.put("name",name)
return dao.find("from enty where name=:name",name)
}
else{
return null;
}
}
dorado在存储单表的时候直接saveAll就可以了,但是如果值两主从表,从表就不能存储,因此要更换一种方法;
public void saveALlaLltable(Collection<Entiy> entitys){
for(entity e:entitys){
otherentity os=e.getOthers();
for(Other o:os){
o.setEntity(entity);
}
dao,persisentitys(entitys);
}
}
添加子表很简单,只是添加#.<子表名>,然后dorado自动生成子表
性能优化,一般要在从表的datetype中设置Reference属性,peremater设置成$${this.entityId}.,后台方法一般如下
public void getentitybyid(page<entity> page,Integer id){
String hql="from entity where id=:id"
Map m=new HashMap();
m.put("id",id);
dao.find(page,hql,m);
}
递归树的方法,一般如下,
1,dataTree,和form表格都要定义相同的dataset
2,datatree的currentNodeDataPath:定义一个片段“PD”
3,from表格的dataPath属性定义为”!PD“,取出树的内容
后台代码一般如下
public Collection<Entity> gettopentity(){
return dao.find("from entity where entity.entityID =null");
}
主从树直接返回getAll即可
项目开发中我们会遇到很多诸如此类的情况:
性别数据库存的是1和0,界面显示希望是"男"和"女";
婚否数据库存的是Y和N,界面显示希望是"是"和"否";
在datatype中设置
mapping->mapValues ${dorado.getDataProvider("marriedDropDownInterceptor#getMarriedState").getResult()}
后台需要添加如下方法;
@DataProvider
public Map<String,String> getMarriedState(){
Map<String,String> mapValue = new LinkedHashMap<String, String>();
mapValue.put("true", "已婚");
mapValue.put("false", "未婚");
return mapValue;
}
当然也可以设置maping映射在mapingValue的edit中进行编辑,唯一的区别是,是否从后台获取数据,