多对一中取多想把一也取出来需要设置多的中lazy为false
spring的优势在于换实现非常容易
ssh整合中,先spring,再hibernate,再struts2,用工具整合的过程中applicationContext.xml文件中会丢失驱动包,需要加入:
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
Hibernate继承HibernateDaoSupport方法可以简化编程
public List<Type2> getAllTypeInfo() {
List<Type2> type2=this.getHibernateTemplate().find("from Type2");
return type2;
}
组合查询把所有条件都放到一个实体类中,然后判断实体类中是否有东西对hql语句进行拼接。
public List<House> getAllHouse(HouseCondition condition,int currentpage, int pageSize) {
Session session=this.getHibernateTemplate().getSessionFactory().openSession();
Criteria c=session.createCriteria(House.class);
if(condition!=null){
if(condition.getTitle()!=null){
c.add(Restrictions.ilike("title",condition.getTitle(),MatchMode.ANYWHERE));
}
if(condition.getMinprice()!=null){
c.add(Restrictions.gt("price",condition.getMinprice()));
}
if(condition.getMaxprice()!=null){
c.add(Restrictions.lt("price",condition.getMaxprice()));
}
if(condition.getStreet_id()!=null){
c.add(Restrictions.eq("street.id",condition.getStreet_id()));
}
if(condition.getMinfloorage()!=null){
c.add(Restrictions.gt("floorage",condition.getMinfloorage()));
}
if(condition.getMaxfloorage()!=null){
c.add(Restrictions.lt("floorage",condition.getMaxfloorage()));
}
if(condition.getType_id()!=null){
c.add(Restrictions.eq("type2.id", condition.getType_id()));
}
}
List<House> house=c.setMaxResults(pageSize)
.setFirstResult((currentpage-1)*pageSize)
.list();
session.close();
return house;
}