publicList<PlayList> testDynamicQuery(Integer flag ,String tags) {
StringBuilder queryCondition =new StringBuilder("");
if(flag !=null){
queryCondition.append(" and p.flag = "+ flag);
}
if(tags !=null&& tags.length() >0){
queryCondition.append(" and p.tags ="+"'"+tags+"'");//String類型特殊處理
}
String hql ="select p from PlayList p , VedioRecommend v
where p.filmId = v.id"+ queryCondition;
Query query = getSession().createQuery(hql);
return query.list();
}
Object[] 數組接收部分參數
public List<Object[]> testObject() {
String hql = "select p.filmName,p.season from PlayList p";
Query query = getSession().createQuery(hql);
return query.list();
}
Map接收部分參數
public List<Map<String, Object>> testMap() {
String hql = "select new map(p.filmName as name,p.season as season) from PlayList p";
Query query = getSession().createQuery(hql);
return query.list();
}
注:Map 必須用小寫 map,key 默認爲"0","1","2"... 但是用as給出的別名將作爲key;
DTO對象接收部分參數
@PersistenceContextprivate EntityManager em;
@Overridepublic List<UserInfoVo> findUserInfoVo() {
String hql = "select new com.demo.provideruser.dto.UserInfoVo(u.id ,u.name ,u.age ) from User u order by u.id";
Query query = em.createQuery(hql);
return query.getResultList();
}