У меня есть пользователи и задачи. Каждый пользователь может иметь несколько наборов задач и наоборот. Я вызываю пользователей, которые содержатся в задачах «Участники», но у меня нет объекта-члена, он неяв и объявлен через аннотацию @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 аннотированный и прочее) я ничего не могу сделать на моих репозиториях, как (Предполагается, что у меня есть и члены карты сущность Wich пользователь и задачи):
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
)
Theres каким-либо образом на этот запрос, используя JPQL/HQL или мне придется Откат к родной запрос SQL? Ty
ясно JPQL выражения начинаются «ВЫБРАТЬ {псевдоним}» ... –
никогда не используется отборное на запросы HQL, он будет решать какие-либо из моих неприятностей? –
это будет означать, что ваши запросы действительны JPQL, то есть стандарты жалоб JPA. Без него они бесполезны нигде, кроме Hibernate ... –