Java 在Hibernate查询语言中使用join选择

Java 在Hibernate查询语言中使用join选择,java,hibernate,hql,Java,Hibernate,Hql,我有两个表:session\u start和session\u end session\u start表的列为 session_id user_id session_end_id session_id session_met session\u end表的列为 session_id user_id session_end_id session_id session_met 现在从user\u id,我想获得user的所有会话。它的hibernate查询是什么?我们需要您的hibe

我有两个表:
session\u start
session\u end

session\u start
表的列为

session_id 
user_id
session_end_id
session_id 
session_met
session\u end
表的列为

session_id 
user_id
session_end_id
session_id 
session_met

现在从
user\u id
,我想获得
user
的所有
会话。它的hibernate查询是什么?

我们需要您的hibernate映射来为它创建HQL。否则它将是普通SQL,如:

select e.session_met
       from session_start s
       join session_end e on s.session_id = e.session_id
where  s.user_id = ?
对于HQL,您需要在属性上加入,如

join s.property to session_end on session_start object
HQL

当然,在我看来,最好有一张会议开始和结束的桌子

class Session {

  @Id
  @GeneratedValue
  @Column  
  private pid;

  @ManyToOne(fetch = FetchType.LAZY)
  private User user;

  @Column
  private String met; 

}