= Use-case 0005 Implementation - Leave a Review '''Initiating actor:''' Pet Owner '''Other actors:''' Pet Sitter '''Description:''' After a booking has successfully completed, the Pet Owner can submit a review about the Pet Sitter. The owner leaves a rating out of 5 and a comment. The system links this review directly to the completed booking. '''Scenario:''' 1. Pet Owner goes to their "My Bookings" page. [[Image(UC0005-1.png)]] 2. System fetches all bookings that belong to this owner to display on the screen: 3. Owner clicks "Leave a Review" on a specific completed booking. 4. Owner enters a rating, types a comment, and clicks submit. {{{ #!sql Hibernate: select b1_0.booking_id, b1_0.address, b1_0.date_from, b1_0.date_to, b1_0.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, p1_0.payment_id, p1_0.amount, p1_0.booking_id, p1_0.payment_type, r1_0.review_id, r1_0.booking_id, r1_0.comment, r1_0.rating, b1_0.sitter_id, s1_0.user_id, s1_1.email, s1_1.first_name, s1_1.last_name, s1_1.password, s1_1.username, b1_0.status from project.bookings b1_0 join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=b1_0.owner_id left join project.payments p1_0 on b1_0.booking_id=p1_0.booking_id left join project.reviews r1_0 on b1_0.booking_id=r1_0.booking_id join (project.pet_sitters s1_0 join project.users s1_1 on s1_0.user_id=s1_1.user_id) on s1_0.user_id=b1_0.sitter_id where b1_0.booking_id=? Hibernate: insert into project.reviews (booking_id, comment, rating, review_id) values (?, ?, ?, ?) Hibernate: select b1_0.booking_id, b1_0.address, b1_0.date_from, b1_0.date_to, b1_0.owner_id, b1_0.sitter_id, b1_0.status from project.bookings b1_0 left join project.pet_owners o1_0 on o1_0.user_id=b1_0.owner_id where o1_0.user_id=? order by b1_0.date_from desc Hibernate: select po1_0.user_id, po1_1.email, po1_1.first_name, po1_1.last_name, po1_1.password, po1_1.username from project.pet_owners po1_0 join project.users po1_1 on po1_0.user_id=po1_1.user_id where po1_0.user_id=? Hibernate: select p1_0.payment_id, p1_0.amount, p1_0.booking_id, b1_0.booking_id, b1_0.address, b1_0.date_from, b1_0.date_to, b1_0.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, r1_0.review_id, r1_0.booking_id, r1_0.comment, r1_0.rating, b1_0.sitter_id, s1_0.user_id, s1_1.email, s1_1.first_name, s1_1.last_name, s1_1.password, s1_1.username, b1_0.status, p1_0.payment_type from project.payments p1_0 join project.bookings b1_0 on b1_0.booking_id=p1_0.booking_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=b1_0.owner_id left join project.reviews r1_0 on b1_0.booking_id=r1_0.booking_id left join (project.pet_sitters s1_0 join project.users s1_1 on s1_0.user_id=s1_1.user_id) on s1_0.user_id=b1_0.sitter_id where p1_0.booking_id=? Hibernate: select r1_0.review_id, r1_0.booking_id, b1_0.booking_id, b1_0.address, b1_0.date_from, b1_0.date_to, b1_0.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, p1_0.payment_id, p1_0.amount, p1_0.booking_id, p1_0.payment_type, b1_0.sitter_id, s1_0.user_id, s1_1.email, s1_1.first_name, s1_1.last_name, s1_1.password, s1_1.username, b1_0.status, r1_0.comment, r1_0.rating from project.reviews r1_0 join project.bookings b1_0 on b1_0.booking_id=r1_0.booking_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=b1_0.owner_id left join project.payments p1_0 on b1_0.booking_id=p1_0.booking_id left join (project.pet_sitters s1_0 join project.users s1_1 on s1_0.user_id=s1_1.user_id) on s1_0.user_id=b1_0.sitter_id where r1_0.booking_id=? Hibernate: select p1_0.payment_id, p1_0.amount, p1_0.booking_id, b1_0.booking_id, b1_0.address, b1_0.date_from, b1_0.date_to, b1_0.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, r1_0.review_id, r1_0.booking_id, r1_0.comment, r1_0.rating, b1_0.sitter_id, s1_0.user_id, s1_1.email, s1_1.first_name, s1_1.last_name, s1_1.password, s1_1.username, b1_0.status, p1_0.payment_type from project.payments p1_0 join project.bookings b1_0 on b1_0.booking_id=p1_0.booking_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=b1_0.owner_id left join project.reviews r1_0 on b1_0.booking_id=r1_0.booking_id left join (project.pet_sitters s1_0 join project.users s1_1 on s1_0.user_id=s1_1.user_id) on s1_0.user_id=b1_0.sitter_id where p1_0.booking_id=? Hibernate: select r1_0.review_id, r1_0.booking_id, b1_0.booking_id, b1_0.address, b1_0.date_from, b1_0.date_to, b1_0.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, p1_0.payment_id, p1_0.amount, p1_0.booking_id, p1_0.payment_type, b1_0.sitter_id, s1_0.user_id, s1_1.email, s1_1.first_name, s1_1.last_name, s1_1.password, s1_1.username, b1_0.status, r1_0.comment, r1_0.rating from project.reviews r1_0 join project.bookings b1_0 on b1_0.booking_id=r1_0.booking_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=b1_0.owner_id left join project.payments p1_0 on b1_0.booking_id=p1_0.booking_id left join (project.pet_sitters s1_0 join project.users s1_1 on s1_0.user_id=s1_1.user_id) on s1_0.user_id=b1_0.sitter_id where r1_0.booking_id=? Hibernate: select p1_0.payment_id, p1_0.amount, p1_0.booking_id, b1_0.booking_id, b1_0.address, b1_0.date_from, b1_0.date_to, b1_0.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, r1_0.review_id, r1_0.booking_id, r1_0.comment, r1_0.rating, b1_0.sitter_id, s1_0.user_id, s1_1.email, s1_1.first_name, s1_1.last_name, s1_1.password, s1_1.username, b1_0.status, p1_0.payment_type from project.payments p1_0 join project.bookings b1_0 on b1_0.booking_id=p1_0.booking_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=b1_0.owner_id left join project.reviews r1_0 on b1_0.booking_id=r1_0.booking_id left join (project.pet_sitters s1_0 join project.users s1_1 on s1_0.user_id=s1_1.user_id) on s1_0.user_id=b1_0.sitter_id where p1_0.booking_id=? Hibernate: select r1_0.review_id, r1_0.booking_id, b1_0.booking_id, b1_0.address, b1_0.date_from, b1_0.date_to, b1_0.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, p1_0.payment_id, p1_0.amount, p1_0.booking_id, p1_0.payment_type, b1_0.sitter_id, s1_0.user_id, s1_1.email, s1_1.first_name, s1_1.last_name, s1_1.password, s1_1.username, b1_0.status, r1_0.comment, r1_0.rating from project.reviews r1_0 join project.bookings b1_0 on b1_0.booking_id=r1_0.booking_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=b1_0.owner_id left join project.payments p1_0 on b1_0.booking_id=p1_0.booking_id left join (project.pet_sitters s1_0 join project.users s1_1 on s1_0.user_id=s1_1.user_id) on s1_0.user_id=b1_0.sitter_id where r1_0.booking_id=? Hibernate: select p1_0.payment_id, p1_0.amount, p1_0.booking_id, b1_0.booking_id, b1_0.address, b1_0.date_from, b1_0.date_to, b1_0.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, r1_0.review_id, r1_0.booking_id, r1_0.comment, r1_0.rating, b1_0.sitter_id, s1_0.user_id, s1_1.email, s1_1.first_name, s1_1.last_name, s1_1.password, s1_1.username, b1_0.status, p1_0.payment_type from project.payments p1_0 join project.bookings b1_0 on b1_0.booking_id=p1_0.booking_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=b1_0.owner_id left join project.reviews r1_0 on b1_0.booking_id=r1_0.booking_id left join (project.pet_sitters s1_0 join project.users s1_1 on s1_0.user_id=s1_1.user_id) on s1_0.user_id=b1_0.sitter_id where p1_0.booking_id=? Hibernate: select r1_0.review_id, r1_0.booking_id, b1_0.booking_id, b1_0.address, b1_0.date_from, b1_0.date_to, b1_0.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, p1_0.payment_id, p1_0.amount, p1_0.booking_id, p1_0.payment_type, b1_0.sitter_id, s1_0.user_id, s1_1.email, s1_1.first_name, s1_1.last_name, s1_1.password, s1_1.username, b1_0.status, r1_0.comment, r1_0.rating from project.reviews r1_0 join project.bookings b1_0 on b1_0.booking_id=r1_0.booking_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=b1_0.owner_id left join project.payments p1_0 on b1_0.booking_id=p1_0.booking_id left join (project.pet_sitters s1_0 join project.users s1_1 on s1_0.user_id=s1_1.user_id) on s1_0.user_id=b1_0.sitter_id where r1_0.booking_id=? Hibernate: select p1_0.payment_id, p1_0.amount, p1_0.booking_id, b1_0.booking_id, b1_0.address, b1_0.date_from, b1_0.date_to, b1_0.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, r1_0.review_id, r1_0.booking_id, r1_0.comment, r1_0.rating, b1_0.sitter_id, s1_0.user_id, s1_1.email, s1_1.first_name, s1_1.last_name, s1_1.password, s1_1.username, b1_0.status, p1_0.payment_type from project.payments p1_0 join project.bookings b1_0 on b1_0.booking_id=p1_0.booking_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=b1_0.owner_id left join project.reviews r1_0 on b1_0.booking_id=r1_0.booking_id left join (project.pet_sitters s1_0 join project.users s1_1 on s1_0.user_id=s1_1.user_id) on s1_0.user_id=b1_0.sitter_id where p1_0.booking_id=? Hibernate: select r1_0.review_id, r1_0.booking_id, b1_0.booking_id, b1_0.address, b1_0.date_from, b1_0.date_to, b1_0.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, p1_0.payment_id, p1_0.amount, p1_0.booking_id, p1_0.payment_type, b1_0.sitter_id, s1_0.user_id, s1_1.email, s1_1.first_name, s1_1.last_name, s1_1.password, s1_1.username, b1_0.status, r1_0.comment, r1_0.rating from project.reviews r1_0 join project.bookings b1_0 on b1_0.booking_id=r1_0.booking_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=b1_0.owner_id left join project.payments p1_0 on b1_0.booking_id=p1_0.booking_id left join (project.pet_sitters s1_0 join project.users s1_1 on s1_0.user_id=s1_1.user_id) on s1_0.user_id=b1_0.sitter_id where r1_0.booking_id=? Hibernate: select p1_0.payment_id, p1_0.amount, p1_0.booking_id, b1_0.booking_id, b1_0.address, b1_0.date_from, b1_0.date_to, b1_0.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, r1_0.review_id, r1_0.booking_id, r1_0.comment, r1_0.rating, b1_0.sitter_id, s1_0.user_id, s1_1.email, s1_1.first_name, s1_1.last_name, s1_1.password, s1_1.username, b1_0.status, p1_0.payment_type from project.payments p1_0 join project.bookings b1_0 on b1_0.booking_id=p1_0.booking_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=b1_0.owner_id left join project.reviews r1_0 on b1_0.booking_id=r1_0.booking_id left join (project.pet_sitters s1_0 join project.users s1_1 on s1_0.user_id=s1_1.user_id) on s1_0.user_id=b1_0.sitter_id where p1_0.booking_id=? Hibernate: select r1_0.review_id, r1_0.booking_id, b1_0.booking_id, b1_0.address, b1_0.date_from, b1_0.date_to, b1_0.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, p1_0.payment_id, p1_0.amount, p1_0.booking_id, p1_0.payment_type, b1_0.sitter_id, s1_0.user_id, s1_1.email, s1_1.first_name, s1_1.last_name, s1_1.password, s1_1.username, b1_0.status, r1_0.comment, r1_0.rating from project.reviews r1_0 join project.bookings b1_0 on b1_0.booking_id=r1_0.booking_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=b1_0.owner_id left join project.payments p1_0 on b1_0.booking_id=p1_0.booking_id left join (project.pet_sitters s1_0 join project.users s1_1 on s1_0.user_id=s1_1.user_id) on s1_0.user_id=b1_0.sitter_id where r1_0.booking_id=? Hibernate: select p1_0.payment_id, p1_0.amount, p1_0.booking_id, b1_0.booking_id, b1_0.address, b1_0.date_from, b1_0.date_to, b1_0.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, r1_0.review_id, r1_0.booking_id, r1_0.comment, r1_0.rating, b1_0.sitter_id, s1_0.user_id, s1_1.email, s1_1.first_name, s1_1.last_name, s1_1.password, s1_1.username, b1_0.status, p1_0.payment_type from project.payments p1_0 join project.bookings b1_0 on b1_0.booking_id=p1_0.booking_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=b1_0.owner_id left join project.reviews r1_0 on b1_0.booking_id=r1_0.booking_id left join (project.pet_sitters s1_0 join project.users s1_1 on s1_0.user_id=s1_1.user_id) on s1_0.user_id=b1_0.sitter_id where p1_0.booking_id=? Hibernate: select r1_0.review_id, r1_0.booking_id, b1_0.booking_id, b1_0.address, b1_0.date_from, b1_0.date_to, b1_0.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, p1_0.payment_id, p1_0.amount, p1_0.booking_id, p1_0.payment_type, b1_0.sitter_id, s1_0.user_id, s1_1.email, s1_1.first_name, s1_1.last_name, s1_1.password, s1_1.username, b1_0.status, r1_0.comment, r1_0.rating from project.reviews r1_0 join project.bookings b1_0 on b1_0.booking_id=r1_0.booking_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=b1_0.owner_id left join project.payments p1_0 on b1_0.booking_id=p1_0.booking_id left join (project.pet_sitters s1_0 join project.users s1_1 on s1_0.user_id=s1_1.user_id) on s1_0.user_id=b1_0.sitter_id where r1_0.booking_id=? Hibernate: select p1_0.payment_id, p1_0.amount, p1_0.booking_id, b1_0.booking_id, b1_0.address, b1_0.date_from, b1_0.date_to, b1_0.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, r1_0.review_id, r1_0.booking_id, r1_0.comment, r1_0.rating, b1_0.sitter_id, s1_0.user_id, s1_1.email, s1_1.first_name, s1_1.last_name, s1_1.password, s1_1.username, b1_0.status, p1_0.payment_type from project.payments p1_0 join project.bookings b1_0 on b1_0.booking_id=p1_0.booking_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=b1_0.owner_id left join project.reviews r1_0 on b1_0.booking_id=r1_0.booking_id left join (project.pet_sitters s1_0 join project.users s1_1 on s1_0.user_id=s1_1.user_id) on s1_0.user_id=b1_0.sitter_id where p1_0.booking_id=? Hibernate: select r1_0.review_id, r1_0.booking_id, b1_0.booking_id, b1_0.address, b1_0.date_from, b1_0.date_to, b1_0.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, p1_0.payment_id, p1_0.amount, p1_0.booking_id, p1_0.payment_type, b1_0.sitter_id, s1_0.user_id, s1_1.email, s1_1.first_name, s1_1.last_name, s1_1.password, s1_1.username, b1_0.status, r1_0.comment, r1_0.rating from project.reviews r1_0 join project.bookings b1_0 on b1_0.booking_id=r1_0.booking_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=b1_0.owner_id left join project.payments p1_0 on b1_0.booking_id=p1_0.booking_id left join (project.pet_sitters s1_0 join project.users s1_1 on s1_0.user_id=s1_1.user_id) on s1_0.user_id=b1_0.sitter_id where r1_0.booking_id=? Hibernate: select p1_0.payment_id, p1_0.amount, p1_0.booking_id, b1_0.booking_id, b1_0.address, b1_0.date_from, b1_0.date_to, b1_0.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, r1_0.review_id, r1_0.booking_id, r1_0.comment, r1_0.rating, b1_0.sitter_id, s1_0.user_id, s1_1.email, s1_1.first_name, s1_1.last_name, s1_1.password, s1_1.username, b1_0.status, p1_0.payment_type from project.payments p1_0 join project.bookings b1_0 on b1_0.booking_id=p1_0.booking_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=b1_0.owner_id left join project.reviews r1_0 on b1_0.booking_id=r1_0.booking_id left join (project.pet_sitters s1_0 join project.users s1_1 on s1_0.user_id=s1_1.user_id) on s1_0.user_id=b1_0.sitter_id where p1_0.booking_id=? Hibernate: select r1_0.review_id, r1_0.booking_id, b1_0.booking_id, b1_0.address, b1_0.date_from, b1_0.date_to, b1_0.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, p1_0.payment_id, p1_0.amount, p1_0.booking_id, p1_0.payment_type, b1_0.sitter_id, s1_0.user_id, s1_1.email, s1_1.first_name, s1_1.last_name, s1_1.password, s1_1.username, b1_0.status, r1_0.comment, r1_0.rating from project.reviews r1_0 join project.bookings b1_0 on b1_0.booking_id=r1_0.booking_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=b1_0.owner_id left join project.payments p1_0 on b1_0.booking_id=p1_0.booking_id left join (project.pet_sitters s1_0 join project.users s1_1 on s1_0.user_id=s1_1.user_id) on s1_0.user_id=b1_0.sitter_id where r1_0.booking_id=? Hibernate: select p1_0.payment_id, p1_0.amount, p1_0.booking_id, b1_0.booking_id, b1_0.address, b1_0.date_from, b1_0.date_to, b1_0.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, r1_0.review_id, r1_0.booking_id, r1_0.comment, r1_0.rating, b1_0.sitter_id, s1_0.user_id, s1_1.email, s1_1.first_name, s1_1.last_name, s1_1.password, s1_1.username, b1_0.status, p1_0.payment_type from project.payments p1_0 join project.bookings b1_0 on b1_0.booking_id=p1_0.booking_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=b1_0.owner_id left join project.reviews r1_0 on b1_0.booking_id=r1_0.booking_id left join (project.pet_sitters s1_0 join project.users s1_1 on s1_0.user_id=s1_1.user_id) on s1_0.user_id=b1_0.sitter_id where p1_0.booking_id=? Hibernate: select r1_0.review_id, r1_0.booking_id, b1_0.booking_id, b1_0.address, b1_0.date_from, b1_0.date_to, b1_0.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, p1_0.payment_id, p1_0.amount, p1_0.booking_id, p1_0.payment_type, b1_0.sitter_id, s1_0.user_id, s1_1.email, s1_1.first_name, s1_1.last_name, s1_1.password, s1_1.username, b1_0.status, r1_0.comment, r1_0.rating from project.reviews r1_0 join project.bookings b1_0 on b1_0.booking_id=r1_0.booking_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=b1_0.owner_id left join project.payments p1_0 on b1_0.booking_id=p1_0.booking_id left join (project.pet_sitters s1_0 join project.users s1_1 on s1_0.user_id=s1_1.user_id) on s1_0.user_id=b1_0.sitter_id where r1_0.booking_id=? Hibernate: select p1_0.payment_id, p1_0.amount, p1_0.booking_id, b1_0.booking_id, b1_0.address, b1_0.date_from, b1_0.date_to, b1_0.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, r1_0.review_id, r1_0.booking_id, r1_0.comment, r1_0.rating, b1_0.sitter_id, s1_0.user_id, s1_1.email, s1_1.first_name, s1_1.last_name, s1_1.password, s1_1.username, b1_0.status, p1_0.payment_type from project.payments p1_0 join project.bookings b1_0 on b1_0.booking_id=p1_0.booking_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=b1_0.owner_id left join project.reviews r1_0 on b1_0.booking_id=r1_0.booking_id left join (project.pet_sitters s1_0 join project.users s1_1 on s1_0.user_id=s1_1.user_id) on s1_0.user_id=b1_0.sitter_id where p1_0.booking_id=? Hibernate: select r1_0.review_id, r1_0.booking_id, b1_0.booking_id, b1_0.address, b1_0.date_from, b1_0.date_to, b1_0.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, p1_0.payment_id, p1_0.amount, p1_0.booking_id, p1_0.payment_type, b1_0.sitter_id, s1_0.user_id, s1_1.email, s1_1.first_name, s1_1.last_name, s1_1.password, s1_1.username, b1_0.status, r1_0.comment, r1_0.rating from project.reviews r1_0 join project.bookings b1_0 on b1_0.booking_id=r1_0.booking_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=b1_0.owner_id left join project.payments p1_0 on b1_0.booking_id=p1_0.booking_id left join (project.pet_sitters s1_0 join project.users s1_1 on s1_0.user_id=s1_1.user_id) on s1_0.user_id=b1_0.sitter_id where r1_0.booking_id=? Hibernate: select p1_0.payment_id, p1_0.amount, p1_0.booking_id, b1_0.booking_id, b1_0.address, b1_0.date_from, b1_0.date_to, b1_0.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, r1_0.review_id, r1_0.booking_id, r1_0.comment, r1_0.rating, b1_0.sitter_id, s1_0.user_id, s1_1.email, s1_1.first_name, s1_1.last_name, s1_1.password, s1_1.username, b1_0.status, p1_0.payment_type from project.payments p1_0 join project.bookings b1_0 on b1_0.booking_id=p1_0.booking_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=b1_0.owner_id left join project.reviews r1_0 on b1_0.booking_id=r1_0.booking_id left join (project.pet_sitters s1_0 join project.users s1_1 on s1_0.user_id=s1_1.user_id) on s1_0.user_id=b1_0.sitter_id where p1_0.booking_id=? Hibernate: select r1_0.review_id, r1_0.booking_id, b1_0.booking_id, b1_0.address, b1_0.date_from, b1_0.date_to, b1_0.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, p1_0.payment_id, p1_0.amount, p1_0.booking_id, p1_0.payment_type, b1_0.sitter_id, s1_0.user_id, s1_1.email, s1_1.first_name, s1_1.last_name, s1_1.password, s1_1.username, b1_0.status, r1_0.comment, r1_0.rating from project.reviews r1_0 join project.bookings b1_0 on b1_0.booking_id=r1_0.booking_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=b1_0.owner_id left join project.payments p1_0 on b1_0.booking_id=p1_0.booking_id left join (project.pet_sitters s1_0 join project.users s1_1 on s1_0.user_id=s1_1.user_id) on s1_0.user_id=b1_0.sitter_id where r1_0.booking_id=? Hibernate: select s1_0.booking_id, s1_1.service_id, s1_1.description, s1_1.type from project.booking_services s1_0 join project.services s1_1 on s1_1.service_id=s1_0.service_id where s1_0.booking_id=? Hibernate: select p1_0.booking_id, p1_1.pet_id, p1_1.age, p1_1.description, p1_1.name, p1_1.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, p1_1.pettype_id, pt1_0.pettype_id, pt1_0.needs_outdoor_walk, pt1_0.species, p1_1.photo, p1_1.special_needs from project.booking_pets p1_0 join project.pets p1_1 on p1_1.pet_id=p1_0.pet_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=p1_1.owner_id left join project.pet_types pt1_0 on pt1_0.pettype_id=p1_1.pettype_id where p1_0.booking_id=? Hibernate: select s1_0.booking_id, s1_1.service_id, s1_1.description, s1_1.type from project.booking_services s1_0 join project.services s1_1 on s1_1.service_id=s1_0.service_id where s1_0.booking_id=? Hibernate: select p1_0.booking_id, p1_1.pet_id, p1_1.age, p1_1.description, p1_1.name, p1_1.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, p1_1.pettype_id, pt1_0.pettype_id, pt1_0.needs_outdoor_walk, pt1_0.species, p1_1.photo, p1_1.special_needs from project.booking_pets p1_0 join project.pets p1_1 on p1_1.pet_id=p1_0.pet_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=p1_1.owner_id left join project.pet_types pt1_0 on pt1_0.pettype_id=p1_1.pettype_id where p1_0.booking_id=? Hibernate: select s1_0.booking_id, s1_1.service_id, s1_1.description, s1_1.type from project.booking_services s1_0 join project.services s1_1 on s1_1.service_id=s1_0.service_id where s1_0.booking_id=? Hibernate: select p1_0.booking_id, p1_1.pet_id, p1_1.age, p1_1.description, p1_1.name, p1_1.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, p1_1.pettype_id, pt1_0.pettype_id, pt1_0.needs_outdoor_walk, pt1_0.species, p1_1.photo, p1_1.special_needs from project.booking_pets p1_0 join project.pets p1_1 on p1_1.pet_id=p1_0.pet_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=p1_1.owner_id left join project.pet_types pt1_0 on pt1_0.pettype_id=p1_1.pettype_id where p1_0.booking_id=? Hibernate: select s1_0.booking_id, s1_1.service_id, s1_1.description, s1_1.type from project.booking_services s1_0 join project.services s1_1 on s1_1.service_id=s1_0.service_id where s1_0.booking_id=? Hibernate: select p1_0.booking_id, p1_1.pet_id, p1_1.age, p1_1.description, p1_1.name, p1_1.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, p1_1.pettype_id, pt1_0.pettype_id, pt1_0.needs_outdoor_walk, pt1_0.species, p1_1.photo, p1_1.special_needs from project.booking_pets p1_0 join project.pets p1_1 on p1_1.pet_id=p1_0.pet_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=p1_1.owner_id left join project.pet_types pt1_0 on pt1_0.pettype_id=p1_1.pettype_id where p1_0.booking_id=? Hibernate: select s1_0.booking_id, s1_1.service_id, s1_1.description, s1_1.type from project.booking_services s1_0 join project.services s1_1 on s1_1.service_id=s1_0.service_id where s1_0.booking_id=? Hibernate: select p1_0.booking_id, p1_1.pet_id, p1_1.age, p1_1.description, p1_1.name, p1_1.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, p1_1.pettype_id, pt1_0.pettype_id, pt1_0.needs_outdoor_walk, pt1_0.species, p1_1.photo, p1_1.special_needs from project.booking_pets p1_0 join project.pets p1_1 on p1_1.pet_id=p1_0.pet_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=p1_1.owner_id left join project.pet_types pt1_0 on pt1_0.pettype_id=p1_1.pettype_id where p1_0.booking_id=? Hibernate: select s1_0.booking_id, s1_1.service_id, s1_1.description, s1_1.type from project.booking_services s1_0 join project.services s1_1 on s1_1.service_id=s1_0.service_id where s1_0.booking_id=? Hibernate: select p1_0.booking_id, p1_1.pet_id, p1_1.age, p1_1.description, p1_1.name, p1_1.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, p1_1.pettype_id, pt1_0.pettype_id, pt1_0.needs_outdoor_walk, pt1_0.species, p1_1.photo, p1_1.special_needs from project.booking_pets p1_0 join project.pets p1_1 on p1_1.pet_id=p1_0.pet_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=p1_1.owner_id left join project.pet_types pt1_0 on pt1_0.pettype_id=p1_1.pettype_id where p1_0.booking_id=? Hibernate: select s1_0.booking_id, s1_1.service_id, s1_1.description, s1_1.type from project.booking_services s1_0 join project.services s1_1 on s1_1.service_id=s1_0.service_id where s1_0.booking_id=? Hibernate: select p1_0.booking_id, p1_1.pet_id, p1_1.age, p1_1.description, p1_1.name, p1_1.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, p1_1.pettype_id, pt1_0.pettype_id, pt1_0.needs_outdoor_walk, pt1_0.species, p1_1.photo, p1_1.special_needs from project.booking_pets p1_0 join project.pets p1_1 on p1_1.pet_id=p1_0.pet_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=p1_1.owner_id left join project.pet_types pt1_0 on pt1_0.pettype_id=p1_1.pettype_id where p1_0.booking_id=? Hibernate: select s1_0.booking_id, s1_1.service_id, s1_1.description, s1_1.type from project.booking_services s1_0 join project.services s1_1 on s1_1.service_id=s1_0.service_id where s1_0.booking_id=? Hibernate: select p1_0.booking_id, p1_1.pet_id, p1_1.age, p1_1.description, p1_1.name, p1_1.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, p1_1.pettype_id, pt1_0.pettype_id, pt1_0.needs_outdoor_walk, pt1_0.species, p1_1.photo, p1_1.special_needs from project.booking_pets p1_0 join project.pets p1_1 on p1_1.pet_id=p1_0.pet_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=p1_1.owner_id left join project.pet_types pt1_0 on pt1_0.pettype_id=p1_1.pettype_id where p1_0.booking_id=? Hibernate: select s1_0.booking_id, s1_1.service_id, s1_1.description, s1_1.type from project.booking_services s1_0 join project.services s1_1 on s1_1.service_id=s1_0.service_id where s1_0.booking_id=? Hibernate: select p1_0.booking_id, p1_1.pet_id, p1_1.age, p1_1.description, p1_1.name, p1_1.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, p1_1.pettype_id, pt1_0.pettype_id, pt1_0.needs_outdoor_walk, pt1_0.species, p1_1.photo, p1_1.special_needs from project.booking_pets p1_0 join project.pets p1_1 on p1_1.pet_id=p1_0.pet_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=p1_1.owner_id left join project.pet_types pt1_0 on pt1_0.pettype_id=p1_1.pettype_id where p1_0.booking_id=? Hibernate: select s1_0.booking_id, s1_1.service_id, s1_1.description, s1_1.type from project.booking_services s1_0 join project.services s1_1 on s1_1.service_id=s1_0.service_id where s1_0.booking_id=? Hibernate: select p1_0.booking_id, p1_1.pet_id, p1_1.age, p1_1.description, p1_1.name, p1_1.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, p1_1.pettype_id, pt1_0.pettype_id, pt1_0.needs_outdoor_walk, pt1_0.species, p1_1.photo, p1_1.special_needs from project.booking_pets p1_0 join project.pets p1_1 on p1_1.pet_id=p1_0.pet_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=p1_1.owner_id left join project.pet_types pt1_0 on pt1_0.pettype_id=p1_1.pettype_id where p1_0.booking_id=? Hibernate: select s1_0.booking_id, s1_1.service_id, s1_1.description, s1_1.type from project.booking_services s1_0 join project.services s1_1 on s1_1.service_id=s1_0.service_id where s1_0.booking_id=? Hibernate: select p1_0.booking_id, p1_1.pet_id, p1_1.age, p1_1.description, p1_1.name, p1_1.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, p1_1.pettype_id, pt1_0.pettype_id, pt1_0.needs_outdoor_walk, pt1_0.species, p1_1.photo, p1_1.special_needs from project.booking_pets p1_0 join project.pets p1_1 on p1_1.pet_id=p1_0.pet_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=p1_1.owner_id left join project.pet_types pt1_0 on pt1_0.pettype_id=p1_1.pettype_id where p1_0.booking_id=? Hibernate: select s1_0.booking_id, s1_1.service_id, s1_1.description, s1_1.type from project.booking_services s1_0 join project.services s1_1 on s1_1.service_id=s1_0.service_id where s1_0.booking_id=? Hibernate: select p1_0.booking_id, p1_1.pet_id, p1_1.age, p1_1.description, p1_1.name, p1_1.owner_id, o1_0.user_id, o1_1.email, o1_1.first_name, o1_1.last_name, o1_1.password, o1_1.username, p1_1.pettype_id, pt1_0.pettype_id, pt1_0.needs_outdoor_walk, pt1_0.species, p1_1.photo, p1_1.special_needs from project.booking_pets p1_0 join project.pets p1_1 on p1_1.pet_id=p1_0.pet_id left join (project.pet_owners o1_0 join project.users o1_1 on o1_0.user_id=o1_1.user_id) on o1_0.user_id=p1_1.owner_id left join project.pet_types pt1_0 on pt1_0.pettype_id=p1_1.pettype_id where p1_0.booking_id=? }}} 5. System creates the review record attached to that exact transaction: