码迷,mamicode.com
首页 > Web开发 > 详细

hibernate hql语句 注意事项

时间:2018-03-21 13:55:38      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:hiberna   user   too   不能   获取   etc   tin   from   for   

现在有实体类 Student 和User 。

public class Student{

  private String id;

  private Sting classRoom;

  private User user;

@Id
@GeneratedValue(generator = "paymentableGenerator")
@GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
@Column(name ="ID",nullable=false,length=36)
public String getId(){
return this.id;
}
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "USER")
@ForeignKey(name="null")
public USER getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
……

}

public class User{

  private String id;

  private String name;

  private String password;

  ……

}

如果 你不用select 直接 “from Student ”查找 

hql语句 :“from Student where user=‘123456’”

那么where 后面 直接加 “where user=‘123456‘”  (123456是User表记录的id)。

 

如果你要用select “select classRoom…”查找

hql语句 :"select “select classRoom,user.name as user from Student where uder.id=‘123456‘"

那么where语句已经select中 的user已经是个对象了要加 .? (123456是User表记录的id)。

 

你用了 select 了,那你就别执着用hibernate的hql了 ,因为你得到的结果 也不再是实体类,获取结果也不能用 List<Studet>了,变成了List<Object[]>。。。

很难受 - - 还不如直接用sql查,获取结果也是List<Object[]>

hibernate hql语句 注意事项

标签:hiberna   user   too   不能   获取   etc   tin   from   for   

原文地址:https://www.cnblogs.com/xlj227/p/8615945.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!