现在有实体类 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[]>
原文地址:https://www.cnblogs.com/xlj227/p/8615945.html
时间: 2024-10-11 07:18:05