Hibernate criteria. Извлечь строку, для которой в связующей таблице есть обе эти записи

224
04 ноября 2017, 12:50

Есть 2 обьекта. Room и User. Связь много ко многим.

@Entity
@Table(name = "\"Room\"")
public class Room {
private int id;
private List<User> subscribers;
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}
@JsonIgnoreProperties("roomList")
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "roomList")
public List<User> getSubscribers() {
    return subscribers;
}
public void setSubscribers(List<User> subscribers) {
    this.subscribers = subscribers;
}
}
@Entity
@Table(name = "\"User\"")
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
public class User implements Serializable{
private UUID id;
private List<Room> roomList;
@Id
@Column(name = "id")
@Type(type="pg-uuid")
//@GeneratedValue(strategy = GenerationType.IDENTITY)
public UUID getId() {
    return id;
}
public void setId(UUID id) {
    this.id = id;
}
@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable(name = "\"UserRoomSet\"",
        joinColumns = @JoinColumn(name = "userid"),
        inverseJoinColumns = @JoinColumn(name = "roomid"))
@JsonIgnoreProperties("subscribers")
public List<Room> getRoomList() {
    return roomList;
}
public void setRoomList(List<Room> roomList) {
    this.roomList = roomList;
}
}

Мне нужно по входящим двум юзерам найти комнату, в которой они оба есть..

Мой вариант очевидно не правильный:

Criteria crt = session.createCriteria(Room.class);
    crt.createAlias("subscribers", "s");
    crt.add(Restrictions.eq("s.id", id1));
    crt.add(Restrictions.eq("s.id", id2));
    List list = crt.list();

Подскажите кто в курсе, как это можно реализовать на Hibernate criteria.

READ ALSO
java проблема с double

java проблема с double

Уважаемые хелп!!! Задача у меня была следующая, написать деление двух int , результат double , потом в этом double анализируя 12 знаков после запятой...

300
Как мониторить API

Как мониторить API

Есть немалое количество java api'шек на jetty которое надо как то мониторить на предмет живы ли ониМогут ли подключаться к бд, быстро ли работают,...

212
java вывод double

java вывод double

Почему такое выражение - Systemout

191
Ошибка в Java Javax.swing

Ошибка в Java Javax.swing

Работаю в программе EclipseСтрочка import javax

267