起别名!!!!!!!!!!!!!!

huosidun0302 2010-03-28 12:36:46

Query query = session.createQuery("select new User"
+" (u.id,u.name) "
+" from User u ");
List list = query.list();


以上是个hibernate的hql语句.查询出来是两列!hibernate自己给起了别名了.叫col_0_0_和col_1_0_
我想自己给它起别名!但是我写成下面这样不起作用!有人知道应该怎么写么?

Query query = session.createQuery("select new User"
+" (u.id as id,u.name as name) "
+" from User u ");
List list = query.list();
...全文
221 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
magicluo 2010-03-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 huosidun0302 的回复:]
引用 5 楼 bao110908 的回复:

Hibernate 起的别名跟你使用丝毫没有影响,这完全是 Hibernate 自己的事情,建议不要纠结于这种没有用的事情上了。


这怎么能叫没用的事呢!你认真看我的问题了么
[/Quote]

没用过 你看看这个能否解决你的相关问题
http://www.javaeye.com/topic/29650
huosidun0302 2010-03-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 bao110908 的回复:]

Hibernate 起的别名跟你使用丝毫没有影响,这完全是 Hibernate 自己的事情,建议不要纠结于这种没有用的事情上了。
[/Quote]

这怎么能叫没用的事呢!你认真看我的问题了么
shiyiwan 2010-03-28
  • 打赏
  • 举报
回复
Query query = session.createNativeQuery("select u.id,u.name,"
+"(case when u.code=1340 then 1 when u.code = 1345 then 2 else 0 end)"
+")"
+" from User u order by (case when u.code=1340 then 1 when u.code = 1345 then 2 else 0 end)");
List list = query.list();
  • 打赏
  • 举报
回复
Hibernate 起的别名跟你使用丝毫没有影响,这完全是 Hibernate 自己的事情,建议不要纠结于这种没有用的事情上了。
huosidun0302 2010-03-28
  • 打赏
  • 举报
回复
up up up up up
huosidun0302 2010-03-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 magicluo 的回复:]

这个不影响你使用吧,Hibernate内部是这样处理,你管它是什么样的别名呢,反正它是自动映射到对象的属性上的的

除非你使用到了聚集函数需要指定别名

这样不行吗??

Java code

Query query = session.createQuery("select u.id,u.name from User as u");
List list = query.list(……
[/Quote]

对啊,就是用了聚集函数啊!我用了case when

Query query = session.createQuery("select new User"
+" (u.id,u.name,"
+"(case when u.code=1340 then 1 when u.code = 1345 then 2 else 0 end)"
+")"
+" from User u order by col_2_0_");
List list = query.list();

我要order by case when这列,现在我只能写成上面这样!这个col_2_0_是hibernate起的名.我想自己起名有办法么?
magicluo 2010-03-28
  • 打赏
  • 举报
回复
这个不影响你使用吧,Hibernate内部是这样处理,你管它是什么样的别名呢,反正它是自动映射到对象的属性上的的

除非你使用到了聚集函数需要指定别名

这样不行吗??


Query query = session.createQuery("select u.id,u.name from User as u");
List list = query.list();



hibernate控制台输出SQL: select u.id,u.name from user u;

niulei190922 2010-03-28
  • 打赏
  • 举报
回复
有一种方法好像要在类的驱动里面设置的, 就是你的类下面的那个xml文件的里面, 具体怎么设置,你在网上找找

62,621

社区成员

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

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