Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Entity
- @Table(name = "registrations")
- @Data
- public class Registration {
- @Id
- @GeneratedValue(strategy = GenerationType.AUTO)
- @Column(name = "id")
- private Long id;
- // other fields
- }
- @Entity
- @Table(name = "participants")
- @Data
- public class Participant {
- @Id
- @GeneratedValue(strategy = GenerationType.AUTO)
- @Column(name = "id")
- private Long id;
- @ManyToOne(targetEntity = Registration.class)
- @JoinColumn(name = "registration_id")
- private Registration registration;
- @ManyToOne(fetch = FetchType.LAZY)
- @JoinColumn(name = "reservation_id")
- private Reservation reservation;
- // other fields
- }
- @Entity
- @Table(name = "reservations")
- @Data
- public class Reservation {
- @Id
- @GeneratedValue(strategy = GenerationType.AUTO)
- @Column(name = "id")
- private Long id;
- @ManyToOne(fetch = FetchType.LAZY)
- @JoinColumn(name = "room_assignment_id")
- private RoomAssignment roomAssignment;
- @ManyToOne(fetch = FetchType.LAZY)
- @JoinColumn(name = "registration_id")
- private Registration registration;
- @OneToMany(fetch = FetchType.LAZY)
- @JoinColumn(name = "reservation_id")
- private List<Participant> participants;
- // other fields
- }
- @Entity
- @Table(name = "room_assignments")
- @Data
- public class RoomAssignment {
- @Id
- @GeneratedValue(strategy = GenerationType.AUTO)
- @Column(name = "id")
- private Long id;
- @OneToOne(fetch = FetchType.LAZY, mappedBy = "assignment", cascade = CascadeType.ALL)
- private Room room;
- @OneToOne(fetch = FetchType.LAZY)
- @JoinColumn(name = "room_type_id", nullable = false)
- private RoomType roomType;
- @OneToMany(fetch = FetchType.LAZY)
- @JoinColumn(name = "room_assignment_id")
- private List<Reservation> reservations;
- }
- @Entity
- @Table(name = "rooms")
- @Data
- public class Room {
- @Id
- @GeneratedValue(strategy = GenerationType.AUTO)
- @Column(name = "id")
- private Long id;
- @Column(name = "room_name")
- private String roomName;
- @OneToMany(fetch = FetchType.LAZY )
- @JoinColumn(name = "room_id")
- private List<RoomArrangement> roomArrangements;
- @OneToOne(fetch = FetchType.LAZY)
- @JoinColumn(name = "assignment_id")
- private RoomAssignment assignment;
- }
- @Entity
- @Table(name = "room_arrangements")
- @Data
- public class RoomArrangement {
- @Id
- @GeneratedValue(strategy = GenerationType.AUTO)
- @Column(name = "id")
- private Long id;
- @ManyToOne(targetEntity = RoomType.class)
- @JoinColumn(name = "room_type_id", nullable = false)
- private RoomType roomType;
- @ManyToOne(targetEntity = Room.class)
- @JoinColumn(name = "room_id", nullable = false)
- private Room room;
- @Column(name = "priority")
- private Integer priority;
- }
- @Override
- public void deleteRegistration(Registration registration) {
- // Deleting payments
- paymentRepository.deleteAll(paymentRepository.findByRegistration(registration));
- // Deleting participants
- participantRepository.deleteAll(participantRepository.findByRegistration(registration));
- List<Reservation> reservations = reservationRepository.findByRegistration(registration);
- for (Reservation res : reservations) {
- RoomAssignment assignment = roomAssignmentRepository.findByReservationsContains(res);
- if (reservationRepository.findByRoomAssignment(assignment).size() == 1) {
- reservationRepository.delete(res);
- Room room = roomRepository.findByAssignment(assignment);
- room.setAssignment(null);
- roomRepository.save(room);
- roomAssignmentRepository.delete(assignment);
- } else {
- reservationRepository.delete(res);
- }
- }
- registrationRepository.delete(registration);
- }
- Column 'room_id' cannot be null
- select payment0_.id as id1_1_, payment0_.amount as amount2_1_, payment0_.paypal_order_id as paypal_o3_1_, payment0_.registration_id as registra5_1_, payment0_.type as type4_1_ from payments payment0_ where payment0_.registration_id=?
- select participan0_.id as id1_0_, participan0_.birth_date as birth_da2_0_, participan0_.birth_place as birth_pl3_0_, participan0_.email as email4_0_, participan0_.facebook_profile as facebook5_0_, participan0_.first_name as first_na6_0_, participan0_.first_time as first_ti7_0_, participan0_.food_intolerances as food_int8_0_, participan0_.food_preferences as food_pre9_0_, participan0_.gender as gender10_0_, participan0_.last_name as last_na11_0_, participan0_.other_food_notes as other_f12_0_, participan0_.registration_id as registr13_0_, participan0_.reservation_id as reserva14_0_ from participants participan0_ where participan0_.registration_id=?
- delete from participants where id=?
- select reservatio0_.id as id1_3_, reservatio0_.monday as monday2_3_, reservatio0_.registration_id as registra4_3_, reservatio0_.room_assignment_id as room_ass5_3_, reservatio0_.thursday as thursday3_3_ from reservations reservatio0_ where reservatio0_.registration_id=?
- select roomassign0_.id as id1_5_, roomassign0_.room_type_id as room_typ2_5_ from room_assignments roomassign0_ where ? in (select reservatio1_.id from reservations reservatio1_ where roomassign0_.id=reservatio1_.room_assignment_id)
- select room0_.id as id1_7_0_, room0_.assignment_id as assignme3_7_0_, room0_.room_name as room_nam2_7_0_ from rooms room0_ where room0_.assignment_id=?
- select reservatio0_.id as id1_3_, reservatio0_.monday as monday2_3_, reservatio0_.registration_id as registra4_3_, reservatio0_.room_assignment_id as room_ass5_3_, reservatio0_.thursday as thursday3_3_ from reservations reservatio0_ where reservatio0_.room_assignment_id=?
- update participants set reservation_id=null where reservation_id=?
- delete from reservations where id=?
- select room0_.id as id1_7_, room0_.assignment_id as assignme3_7_, room0_.room_name as room_nam2_7_ from rooms room0_ where room0_.assignment_id=?
- update rooms set assignment_id=?, room_name=? where id=?
- update reservations set room_assignment_id=null where room_assignment_id=?
- update room_arrangements set room_id=null where room_id=?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement