diff --git a/java/roomBooking/src/main/java/com/uva/roomBooking/Controllers/BookingController.java b/java/roomBooking/src/main/java/com/uva/roomBooking/Controllers/BookingController.java
index e3c13ce8744e73bb3259c34011ef330cf236f701..7e5fe940402ad23ee9faf1d2508d6ea69c029ab8 100644
--- a/java/roomBooking/src/main/java/com/uva/roomBooking/Controllers/BookingController.java
+++ b/java/roomBooking/src/main/java/com/uva/roomBooking/Controllers/BookingController.java
@@ -8,6 +8,10 @@ import com.uva.roomBooking.Repositories.BookingRepository;
 import com.uva.roomBooking.Repositories.RoomRepository;
 import com.uva.roomBooking.Repositories.UserRepository;
 
+import jakarta.transaction.Transactional;
+
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
@@ -53,9 +57,32 @@ public class BookingController {
         return bookingRepository.save(booking);
     }
 
-    @DeleteMapping("/{id}")
-    public void deleteBooking(@PathVariable Integer id) {
-        bookingRepository.deleteById(id);
+    @GetMapping("/{id}")
+    public Booking getBookingById(@PathVariable Integer id) {
+        return bookingRepository.findById(id)
+                .orElseThrow(() -> new RuntimeException("Booking not found"));
     }
 
+
+    @DeleteMapping("/{id}")
+    @Transactional
+    public ResponseEntity<String> deleteBooking(@PathVariable Integer id) {
+        try {
+            if (!bookingRepository.existsById(id)) {
+                return ResponseEntity.status(HttpStatus.NOT_FOUND)
+                    .body("Booking not found with id: " + id);
+            }
+            
+            bookingRepository.deleteBookingById(id); 
+            
+            return ResponseEntity.ok("Booking deleted successfully");
+        } catch (Exception e) {
+            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
+                .body("Error deleting booking: " + e.getMessage());
+        }
+    }
 }
+
+    
+
+
diff --git a/java/roomBooking/src/main/java/com/uva/roomBooking/Repositories/BookingRepository.java b/java/roomBooking/src/main/java/com/uva/roomBooking/Repositories/BookingRepository.java
index a010a3a19ccfbb0fafd588c4fb7a52cb530897d9..54bbc5c4a24dd8250f426b55a5d9f139a0e24a15 100644
--- a/java/roomBooking/src/main/java/com/uva/roomBooking/Repositories/BookingRepository.java
+++ b/java/roomBooking/src/main/java/com/uva/roomBooking/Repositories/BookingRepository.java
@@ -7,6 +7,7 @@ import java.time.LocalDate;
 import java.util.List;
 
 import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.query.Param;
 
@@ -15,4 +16,10 @@ public interface BookingRepository extends JpaRepository<Booking, Integer> {
     @Query("SELECT b FROM Booking b WHERE b.roomId.id = ?1 AND b.startDate < ?2 AND b.endDate > ?3")
     List<Booking> findByRoomIdAndDateRange(@Param("roomId") int roomId, @Param("startDate") LocalDate startDate,
             @Param("endDate") LocalDate endDate);
+
+    @Modifying
+    @Query("DELETE FROM Booking b WHERE b.id = :id")
+    void deleteBookingById(@Param("id") Integer id);
+
+    
 }