多表查询为什么要用QBE,QBC?
我从来都是用HQL检索方式,举个例子:
这样 public List listUser() throws DataAccessException, HibernateException {
return (List) getHibernateTemplate().find("select u.username, r.roomname from User u,Room r where u.userid=r.userid");
}
我从来都是用HQL检索方式,举个例子:
这样 public List listUser() throws DataAccessException, HibernateException {
return (List) getHibernateTemplate().find("select u.username, r.roomname from User u,Room r where u.userid=r.userid");
}
解决方案 »
- java调用.net webService问题
- 连接oracle出问题,求解答
- 关于hibernate的query.list()查询的问题,请好心人解答一下
- JAVA新手,本地连接远程ORA数据库的问题!
- lucene中如何实现某个filed的distinct
- 关于synchronized的问题
- list的问题,请指教下!
- 有人用jasperreport做个曲线图么???
- 做一个调查,看看大家现在都在做什么。
- 救命啊::session中保留有客户端的IP吗?如果有,请问怎样获取?
- Hibernate中使用DetachedCriteria进行多字段条件查询(之间关系为or)的问题
- call.addParameter("arg1", qn, ParameterMode.IN)是什么意思,要先引用什么包吗?
现在的问题是,用这段代码只能返回最后一个对象的集合,而不是两个对象的联查集合。
比如obj[]有两个对象,obj[0] obj[1]。只能返回obj[1]的结果。这是为什么呢?
从新发一遍代码,上面的看其来有点乱/**
* 使用对象数组的查询方法
*
* @param c:查询的类
* @param obj:查询的对象
* @param orber:按那个字段排序
* @param row:每页多少条记录
* @param page:第几页
* @return List: 集合
*/
public List find(Class c, Object[] obj, String[] order, int row, int page) {
// 用spring的类创建session
Session session = this.getSession();
List list = null;
int cou=1;
try {
Criteria criteria=null;
if (obj != null) {
for (int i = 0; i < obj.length; i++) {
if (obj[i]!=null) {
Class c1=obj[i].getClass();
criteria=session.createCriteria(c1);
Example example = Example.create(obj[i]);
//example.enableLike(MatchMode.ANYWHERE);// 匹配模式,使用模糊查询必填项。
// example.excludeNone();//空的不做查询条件
example.excludeZeroes();// 0不要查询
example.ignoreCase();
criteria.add(example);
cou++;
}
}
}
if(cou==1)
criteria=session.createCriteria(c);
if (row != 0 && page != 0) {
criteria.setMaxResults(row);// 最大显示记录数
criteria.setFirstResult((page - 1) * row);// 从第几条开始
} // 判断是否有排序请求,如果有加入到排序方法中
if (order != null) {
for (int i = 0; i < order.length; i++)
criteria.addOrder(Order.desc(order[i]));
}
list = criteria.list();
} catch (HibernateException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} finally {
session.close();
}
return list;
}