jpa – JPQL中的正确加入
发布时间:2020-05-25 16:33:23 所属栏目:Java 来源:互联网
导读:我有以下JPA实体: @Entityclass UserClient{ @Id @GeneratedValue(strategy = GenerationType.AUTO) private long id;}@Entityclass UserAccess{ @Id @GeneratedValue(strategy = GenerationType
|
我有以下JPA实体: @Entity
class UserClient{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
}
@Entity
class UserAccess{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@ManyToOne(optional = false,cascade = { CascadeType.REFRESH })
private UserClient user;
@Temporal(TemporalType.TIMESTAMP)
private Date accessTs;
}
现在我想运行一个JPQL查询来获取上次访问日期的用户列表. SELECT ua.user,MAX(ua.accessTs) FROM UserAccess ua RIGHT JOIN ua.user 我错过了什么吗?正确使用RIGHT JOIN吗? 我正在使用最新的Hibernate JPA版本(4.0.0.CR1) 解决方法您应该使UserClient表成为关系的所有者方(这使IMO更具逻辑意义).然后你可以使用LEFT JOIN而不是RIGHT JOIN.SELECT uc,MAX(ua.accessTs) FROM UserClient uc LEFT JOIN uc.userAccess ua Here’s why left join on (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
