2016-12-06 2 views
0

У меня есть пользователи и задачи. Каждый пользователь может иметь несколько наборов задач и наоборот. Я вызываю пользователей, которые содержатся в задачах «Участники», но у меня нет объекта-члена, он неяв и объявлен через аннотацию @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

+0

ясно JPQL выражения начинаются «ВЫБРАТЬ {псевдоним}» ... –

+0

никогда не используется отборное на запросы HQL, он будет решать какие-либо из моих неприятностей? –

+0

это будет означать, что ваши запросы действительны JPQL, то есть стандарты жалоб JPA. Без него они бесполезны нигде, кроме Hibernate ... –

ответ

0

Я не думаю, что для приведенного примера вам нужно обратиться к объекту-члену (если существует). Вы, вероятно, может сделать что-то вроде:

from User u INNER JOIN u.tasks t WHERE t.finalData < :initial OR t.finalDate > :final 
+0

У члена есть только фиктивная сущность, она действительно не существует в моем проекте, bu, если она существует, это будет запрос JPQ. Ты, я попробую твое объяснение. –

Смежные вопросы