diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/RoomController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/RoomController.java index 6a2ded4..2bfa440 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/RoomController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/RoomController.java @@ -23,6 +23,12 @@ public class RoomController { @Autowired private DeviceRepository deviceRepository; + @Autowired private SwitchRepository switchRepository; + + @Autowired private ButtonDimmerRepository buttonDimmerRepository; + + @Autowired private KnobDimmerRepository knobDimmerRepository; + @GetMapping public List findAll() { return toList(roomRepository.findAll()); @@ -81,6 +87,9 @@ public class RoomController { @DeleteMapping("/{id}") public void deleteById(@PathVariable("id") long id) { + switchRepository.deleteAllByRoomId(id); + knobDimmerRepository.deleteAllByRoomId(id); + buttonDimmerRepository.deleteAllByRoomId(id); roomRepository.deleteById(id); } diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/ButtonDimmerRepository.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/ButtonDimmerRepository.java index 484977a..f39644a 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/ButtonDimmerRepository.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/ButtonDimmerRepository.java @@ -1,3 +1,9 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.models; -public interface ButtonDimmerRepository extends DeviceRepository {} +import javax.transaction.Transactional; + +public interface ButtonDimmerRepository extends DeviceRepository { + + @Transactional + void deleteAllByRoomId(long roomId); +} diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/KnobDimmerRepository.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/KnobDimmerRepository.java index 7d7fc16..2a4558e 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/KnobDimmerRepository.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/KnobDimmerRepository.java @@ -1,3 +1,9 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.models; -public interface KnobDimmerRepository extends DeviceRepository {} +import javax.transaction.Transactional; + +public interface KnobDimmerRepository extends DeviceRepository { + + @Transactional + void deleteAllByRoomId(long roomId); +} diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/Switch.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/Switch.java index ed6f38d..8a8057c 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/Switch.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/Switch.java @@ -54,7 +54,7 @@ public class Switch extends InputDevice { } @PreRemove - private void removeSwitchable() { + public void removeSwitchable() { for (Switchable s : getOutputs()) { s.setSwitchId(null); } diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/SwitchRepository.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/SwitchRepository.java index f06f465..8650ebe 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/SwitchRepository.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/SwitchRepository.java @@ -1,3 +1,9 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.models; -public interface SwitchRepository extends DeviceRepository {} +import javax.transaction.Transactional; + +public interface SwitchRepository extends DeviceRepository { + + @Transactional + void deleteAllByRoomId(long roomId); +}