Obtaining column status definition
To start with, this is not good:

COMPLETE("opted out"), 
OPTED_OUT("complete");


Otherwise, this is pretty standard code. There are two things I'd note:


If desc is coming from the database, you may have a risk of NullPointerException if it comes as null once.
Instead of looping and searching, you can create a map from description to value once and use it each time. Since your set of values is so small, performance difference is probably minimal, so this is question of taste.