我有用户和任务。每个用户可以有多组任务,反之亦然。我打电话给任务“成员”中包含的用户,但我没有成员实体,它是隐含的,并通过注释@JoinTable(name = "member"...
进行声明。代码:使用关联表的JPQL/HQL查询
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column
private int id;
@ManyToMany
@JoinTable(name = "member", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "task_id"))
private Set<Task> tasks = new HashSet<>();
}
@Entity
public class Task {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column
private int id;
@ManyToMany(mappedBy = "tasks")
private Set<User> users = new HashSet<>();
private Calendar initialDate;
private Calendar finalDate;
}
我的问题是在JPQL查询,因为我没有一个真正的会员豆(@Entity注释和东西),我不能做任何事情,在我的仓库一样(假设我已经和会员实体至极地图一个用户和任务):
FROM User u
WHERE NOT EXISTS
(
FROM Member m WHERE m.task.finalDate >= :inicial AND m.task.finalDate <= :final
AND m.user.id = u.id//Member here is a hipotetical/nonexistent entity
)
即使世界任何方式使用JPQL/HQL或我需要退回到原生SQL查询此查询? Ty
明确JPQL语句开始“选择{}别名” ... –
从未使用选择的HQL查询,这将解决任何我的烦恼呢? –
这意味着您的查询是有效的JPQL,即标准投诉JPA。没有它,他们是没有用的,除了休眠... –