一个domain用另一个表,在该表中写对象字段,能够外联其他表,自动查询出来另一张表,如下是用id来关联
private LightningProtection protection; //防雷所Id
@ManyToOne
@JoinColumn(name="PROTECTION",referencedColumnName="ID")public LightningProtection getProtection() {
return protection;
}
public void setProtection(LightningProtection protection) {
this.protection = protection;
}
重写方法,赋值page,做分页
manager.getLists(page,ui);
public void getLists(Page page, UserInfo ui) {
// TODO Auto-generated method stub
List<UserInfo> list = dao.getLists(ui);
if(Utils.isEmpty(list)){
list = new ArrayList<UserInfo>();
}
if(page!=null){
int count = list.size();
page.setTotalCount(count);
int star = (page.getCurrentPage() - 1) * page.getPageSize();
int end = page.getCurrentPage() * page.getPageSize();
if (end > count)
end = count;
list = list.subList(star, end);
page.setDataList(list);
}
}
//hql中用对象赋值
public List<UserInfo> getLists(UserInfo ui) {
// TODO Auto-generated method stub
String str="";
if(ui!=null){
if(ui.getProtection()!=null && ui.getProtection().getId()!=null && !ui.getProtection().getIsParent().equals("1") ){
str+=" and u.protection.id='"+ui.getProtection().getId().toString()+"' ";
}
if(!Utils.isEmpty(ui.getLinkerTel())){
str+=" and u.linkerTel ='"+ui.getLinkerTel()+"' ";
}
}
String sql="from UserInfo u where u.isValid=1 "+str+" order by u.createDate desc ";
Query query = getSession().createQuery(sql);
List<UserInfo> list = query.list();
return list;
}
学无止境