0
与HQL工作,在这个简化的场景:HQL查询与LEFT JOIN和WHERE不给结果
String query = "SELECT new CustomUser(" +
"user.userID AS id," +
"user.username AS username)" +
"FROM User AS user" +
" LEFT JOIN user.friends as friend " +
" where user.username like (:query)" +
" OR " +
" friend.username like (:query) ";
这是回馈只有那些至少有一个朋友的用户,但我想通过获得用户一个条件,除了有朋友或没有。
- 动态实例化使用,因为域名要求
- 我注意到,它给所有的用户,有朋友或没有,如果有关于连接表没有条件(friend.username像(:查询))
这些都是我的表:
用户
@Id...
protected Integer userID;
@Column(name = "username")
private String username;
@OneToMany(mappedBy = "user", cascade = CascadeType.REMOVE)
private List<Friend> friends;
朋友
@Id
private Integer friendID;
@Column(name = "username")
private String username;
@ManyToOne(cascade = CascadeType.DETACH)
@JoinColumn(name="userid")
private User user;
- 注:它的作品,因为我希望对本地SQL
谢谢,但我得到相同 –
你能告诉我2表,用户和朋友? –
是的,我编辑了我的问题 –