It's probably better not to allow re-booking of the same record, especially without the user knowing that he's overwriting his colleague booking. You can either entirely deny re-booking of a booked record, or at least issue a warning "This room is already booked. Are you sure you want to re-book it?". I chose the first approach.
Jari Timonen wrote:My instructions said: If record is marked deleted, it(Data-class) should throw RecordNotFoundException. Record is marked deleted, when someone has reverved it. (after that you can show user some dialog etc)
I don't believe that your instructions say "a booked record should be marked as deleted". This would be quite wrong in my opinion. Since deleted records are available for reuse (or at least that's what the javadoc probably says), anybody could overwrite a booked record (create one on top of it), and nobody will ever know there was a booked room, where, and for which client. Also, deleted record are not showable in the table, so nobody will be able to view booked rooms for (let's say) tomorrow, when the hotel wants to know how many customers to expect.