查出来的list为空
如果去掉order by c.contentOrder 就可以查出来
网上查了好多资料
都没见这样写法
求教一下该怎么写才对呢?
谢谢
10 个解决方案
#1
#2
这样的写法是对的啊,
估计是 没映射好吧,检查一下 Content 确实有个属性 contentOrder,而且确认一下 contentOrder 是基本类型,可以用来排序的。
另外,检查数据库contentOrder是不是为null
估计是 没映射好吧,检查一下 Content 确实有个属性 contentOrder,而且确认一下 contentOrder 是基本类型,可以用来排序的。
另外,检查数据库contentOrder是不是为null
#3
你这里用了多表链接吧
用离线查询
用离线查询
Criteria c = createCriteria(Content.class);
c.createAlias("cartoon","car").add(Restrictions.eq("car.cartoonId","?"); //传递进来的值
c.addOrder(Order.desc("contentOrder")); //你要排序的字段名
List temp = c.list();
#4
谢谢楼上两位的热心回答,
如果用
from Content as c order by c.contentOrder
from Content as c where c.cartoon.cartoonId = ?
都可以查出值来的
cool_scorpion 说的contentOrder 类型是 Integer类型 是可以排序的
或者我换成主键去排序,得出结果list也是为空
如果映射关系错了的话上面那两条语句应该会有问题吧。
由于底层封装了对DAO的操作,没有封装Criteria类的操作,希望可以同过HQL语句解决。
如果用
from Content as c order by c.contentOrder
from Content as c where c.cartoon.cartoonId = ?
都可以查出值来的
cool_scorpion 说的contentOrder 类型是 Integer类型 是可以排序的
或者我换成主键去排序,得出结果list也是为空
如果映射关系错了的话上面那两条语句应该会有问题吧。
由于底层封装了对DAO的操作,没有封装Criteria类的操作,希望可以同过HQL语句解决。
#5
查询的时候 配置List 的排序字段为c.contentOrder,是查询出正确的结果的
#6
顺便把DAO层的操作代码也贴一贴
public List findListByParam(String hql, Object... o)
{
List list = new ArrayList();
if (o != null)
{
list = this.getHibernateTemplate().find(hql, o);
}
else
{
list = this.getHibernateTemplate().find(hql);
}
return list;
}
public List findListByParam(String hql, Object... o)
{
List list = new ArrayList();
if (o != null)
{
list = this.getHibernateTemplate().find(hql, o);
}
else
{
list = this.getHibernateTemplate().find(hql);
}
return list;
}
#7
在后面加上排序关键字试试看行不.
比如:order by id desc,我平时是这样写的.
我知道在sql里面是可以去掉后面的desc.因为sql有个默认的排序.
比如:order by id desc,我平时是这样写的.
我知道在sql里面是可以去掉后面的desc.因为sql有个默认的排序.
#8
#9
谢谢楼这么多位 热心的回答
找到问题了
是不可以用*号的问题
select c.字段,c.字段,c.字段,c.字段 from Content as c where c.cartoon.cartoonId = ? order by c.contentOrder
转换成sql也一样
不能用*也要指定字段
select * from where cartoonId = ? order by contentOrder
就可以查出来了
谢谢热心的各位
找到问题了
是不可以用*号的问题
select c.字段,c.字段,c.字段,c.字段 from Content as c where c.cartoon.cartoonId = ? order by c.contentOrder
转换成sql也一样
不能用*也要指定字段
select * from where cartoonId = ? order by contentOrder
就可以查出来了
谢谢热心的各位
#10
写法是不对的
#1
#2
这样的写法是对的啊,
估计是 没映射好吧,检查一下 Content 确实有个属性 contentOrder,而且确认一下 contentOrder 是基本类型,可以用来排序的。
另外,检查数据库contentOrder是不是为null
估计是 没映射好吧,检查一下 Content 确实有个属性 contentOrder,而且确认一下 contentOrder 是基本类型,可以用来排序的。
另外,检查数据库contentOrder是不是为null
#3
你这里用了多表链接吧
用离线查询
用离线查询
Criteria c = createCriteria(Content.class);
c.createAlias("cartoon","car").add(Restrictions.eq("car.cartoonId","?"); //传递进来的值
c.addOrder(Order.desc("contentOrder")); //你要排序的字段名
List temp = c.list();
#4
谢谢楼上两位的热心回答,
如果用
from Content as c order by c.contentOrder
from Content as c where c.cartoon.cartoonId = ?
都可以查出值来的
cool_scorpion 说的contentOrder 类型是 Integer类型 是可以排序的
或者我换成主键去排序,得出结果list也是为空
如果映射关系错了的话上面那两条语句应该会有问题吧。
由于底层封装了对DAO的操作,没有封装Criteria类的操作,希望可以同过HQL语句解决。
如果用
from Content as c order by c.contentOrder
from Content as c where c.cartoon.cartoonId = ?
都可以查出值来的
cool_scorpion 说的contentOrder 类型是 Integer类型 是可以排序的
或者我换成主键去排序,得出结果list也是为空
如果映射关系错了的话上面那两条语句应该会有问题吧。
由于底层封装了对DAO的操作,没有封装Criteria类的操作,希望可以同过HQL语句解决。
#5
查询的时候 配置List 的排序字段为c.contentOrder,是查询出正确的结果的
#6
顺便把DAO层的操作代码也贴一贴
public List findListByParam(String hql, Object... o)
{
List list = new ArrayList();
if (o != null)
{
list = this.getHibernateTemplate().find(hql, o);
}
else
{
list = this.getHibernateTemplate().find(hql);
}
return list;
}
public List findListByParam(String hql, Object... o)
{
List list = new ArrayList();
if (o != null)
{
list = this.getHibernateTemplate().find(hql, o);
}
else
{
list = this.getHibernateTemplate().find(hql);
}
return list;
}
#7
在后面加上排序关键字试试看行不.
比如:order by id desc,我平时是这样写的.
我知道在sql里面是可以去掉后面的desc.因为sql有个默认的排序.
比如:order by id desc,我平时是这样写的.
我知道在sql里面是可以去掉后面的desc.因为sql有个默认的排序.
#8
#9
谢谢楼这么多位 热心的回答
找到问题了
是不可以用*号的问题
select c.字段,c.字段,c.字段,c.字段 from Content as c where c.cartoon.cartoonId = ? order by c.contentOrder
转换成sql也一样
不能用*也要指定字段
select * from where cartoonId = ? order by contentOrder
就可以查出来了
谢谢热心的各位
找到问题了
是不可以用*号的问题
select c.字段,c.字段,c.字段,c.字段 from Content as c where c.cartoon.cartoonId = ? order by c.contentOrder
转换成sql也一样
不能用*也要指定字段
select * from where cartoonId = ? order by contentOrder
就可以查出来了
谢谢热心的各位
#10
写法是不对的