Answer the question
In order to leave comments, you need to log in
How to create a booking service in java?
Guys, I'm writing an application for booking hotel rooms. Now I am writing the service part, and I understand that I do not have enough imagination for this. There is a class of rooms and a class with a reservation, as well as DTOs for them, now I need to write something like this code: if the collection has a room X, check if there is a date interval (timestamp) from A1 to A2.
The trick is that I roughly understand what to do and at the same time I don’t know how to write it. You do not need to write code for me, explain how I should write it
import lombok.Data;
import javax.persistence.*;
import java.util.Date;
import java.util.List;
import java.util.Set;
@Entity
@Table(name = "room")
@Data
public class RoomEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Long id;
String number;
int persons;
@OneToMany(mappedBy = "roomEntity", fetch = FetchType.LAZY)
List<ReservationEntity> reservationEntitySet;
@ManyToMany(mappedBy = "roomEntityList", fetch = FetchType.EAGER)
List<FacilitiesEntity>facilitiesEntityList;
}
import lombok.Data;
import javax.persistence.*;
import java.sql.Timestamp;
@Entity
@Table(name = "reserved")
@Data
public class ReservationEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Long id;
Timestamp checkFrom;
Timestamp checkTo;
int persons;
@ManyToOne(targetEntity = RoomEntity.class, fetch = FetchType.LAZY)
RoomEntity roomEntity;
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
UserEntity userEntity;
}
Answer the question
In order to leave comments, you need to log in
Добрый день!
Я как-то раз писал сервис по бронированию номеров отелей. Это реальный проект или учебный?
Если реальный проект, то посмотрите в сторону использования API Hotelbeds или GoGlobal.
Рекомендую Hotelbeds. У них в тестовом режиме доступно до 50 запросов в сутки, а в препродакшн неограниченное кол-во запросов. Правда, нужно заплатить сумму 3-4К у.е. и рассказать про деятельность (b2b, b2c) и т.д.
Если учебный проект, то тут зависит от того в каком объеме вы хотите реализовать вашу задачу.
Например, для поиска можно подключить Hibernate Search или ElasticSearch, а можно обойтись простым sql запросом.
Есть класс комнат и класс с резервацией, а так-же DTOшки к ним, теперь мне нужно написать примерно такой код: если в коллекции есть комната X, проверить, есть ли промежуток дат (timestamp) от A1 до A2.
Фишка в том, что я приблизительно понимаю что делать и в то же время не знаю, как это написать.
findAllByStartDateLessThanEqualAndEndDateGreaterThanEqual(OffsetDateTime endDate, OffsetDateTime startDate);
@Query(value = "from EntityClassTable t where yourDate BETWEEN :startDate AND :endDate")
public List<EntityClassTable> getAllBetweenDates(@Param("startDate")Date startDate,@Param("endDate")Date endDate);
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question