关于getHibernateTemplate().find()查询问题

wuxinqiangua 2011-04-16 08:24:50
String sql="from Student"
getHibernateTemplate().find(sql)

这样是查询全部的Student对象

问题:

假如,Student里面有一个name属性,我只想查出来name属性,这样该怎么查?
...全文
192 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
dinglimin2009 2011-04-16
  • 打赏
  • 举报
回复
楼主可以试试延迟加载,这样的话即使你“from Student”,但是 也不是一次性取出这个对象所有的属性,当你需要什么属性的时候,Student.XXX就可以查处相关的属性数据。。。
wuxinqiangua 2011-04-16
  • 打赏
  • 举报
回复
好郁闷!!!哎!!
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wuxinqiangua 的回复:]

String sql="select s.name from Student s";
return this.getHibernateTemplate().find(sql);

这种查询它怎么就查不出东西呢?
[/Quote]

hql是实体查询,这样当然不行了。
wuxinqiangua 2011-04-16
  • 打赏
  • 举报
回复
String sql="select s.name from Student s";
return this.getHibernateTemplate().find(sql);

这种查询它怎么就查不出东西呢?
wuxinqiangua 2011-04-16
  • 打赏
  • 举报
回复
我延迟加载了,但是还是查不出来东西,郁闷了
  • 打赏
  • 举报
回复
refer to: http://www.blogjava.net/wiflish/archive/2006/08/15/63692.html
wuxinqiangua 2011-04-16
  • 打赏
  • 举报
回复
lazy="true" 也不行呀!1
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 java_tomcat 的回复:]

引用 1 楼 ylz2007 的回复:
使用属性的延迟加载,在映射文件的其他列上加lazy=”true”

这样是不是就是说只是加载Name那个属性其他都会延迟加载,那么其他的属性会延迟到什么时候加载呢?
[/Quote]

对,你可以查看下hibernate打印的sql语句,应该是

select name from student 这种了。
jichunbo 2011-04-16
  • 打赏
  • 举报
回复
String sql="select name from Student"
final String sql1 = sql;
return getHibernateTemplate().executeFind(new HibernateCallback(){
public Object doInHibernate(Session session) throws HibernateException{
SQLQuery sqlQuery = session.createSQLQuery(sql1);
return sqlQuery.list();
}
});
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ylz2007 的回复:]
使用属性的延迟加载,在映射文件的其他列上加lazy=”true”
[/Quote]
这样是不是就是说只是加载Name那个属性其他都会延迟加载,那么其他的属性会延迟到什么时候加载呢?
wuxinqiangua 2011-04-16
  • 打赏
  • 举报
回复
2楼的那种方法我查不出来数据
司马喂羊 2011-04-16
  • 打赏
  • 举报
回复
String sql="select s.name from Student s"
getHibernateTemplate().find(sql)
  • 打赏
  • 举报
回复
使用属性的延迟加载,在映射文件的其他列上加lazy=”true”

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧