The best practice (as far as I know) to store currency to use an integer field and store the number of cents.
As far as I know, if you want something to be null in the database you'll need to explicitly set it as null. You could do that with a mutator on your model class that does a strict check for an empty string and sets the attribute to null.