I don't know about the situation in Spain, but what a lot of people in Austria mix up is that there are different types of terminating contracts.
In Austria, the employer can terminate a contract immediately if the employee behaves in a manner that would harm the employer.
If the employee does nothing wrong, the contract can still be terminated, but you have to give notice 6 weeks ahead (or longer if the employee has worked at your company for a long time).
People get these things confused and think employees generally can't be fired without a reason, but that's not true. They just can't be fired on the spot without a reason.