【发布时间】:2022-12-17 22:50:13
【问题描述】:
我有一个名为队列的表,模型如下所示:
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "queue_id")
private Integer queueId;
@ManyToOne
@JoinColumn(name = "location_id", nullable = false)
private Location location;
@ManyToOne
@JoinColumn(name = "queue_room_id", nullable = true)
public QueueRoom queueRoom;
@Override
public Integer getId() {
return getQueueId();
}
@Override
public void setId(Integer id) {
this.setQueueId(id);
}
我正在尝试根据位置 uuid 和队列房间 uuid 检索队列。队列表的外键是id。我可以分别按位置 uuid 和房间 uuid 获取队列,但我似乎无法想出一种方法来结合这两种限制。任何建议将不胜感激。
@Override
public List<Queue> getAllQueuesByLocationAndQueueRoom(String locationUuid, String queueRoomUuid) {
Criteria criteria = getCurrentSession().createCriteria(Queue.class, "q");
//Include/exclude retired queues
includeVoidedObjects(criteria, false);
Criteria locationCriteria = criteria.createCriteria("location", "ql");
locationCriteria.add(Restrictions.eq("ql.uuid", locationUuid));
Criteria queueRoomCriteria = criteria.createCriteria("queueRoom", "qr");
queueRoomCriteria.add(Restrictions.eq("qr.uuid", queueRoomUuid));
return (List<Queue>) queueRoomCriteria.list();
}
【问题讨论】: