In my day job, part of what I do is run communities (like this one), and I have a "one and done" policy. If someone is being hateful but not being offensive or really personally hateful (they talk smack about the content but don't come after me as a person, or a person in my communities), I will try to engage once. I will see if we can talk, person-to-person and even if they don't like what I'm doing, we can at least acknowledge that we're both just trying to figure out things in this weird, strange world of ours.
If that doesn't work, I delete their comment and block 'em. Not enough time for idiots.