Specifying "defaultValue" won't work in the way you are trying to use it. It is meant to be used as a default value that MySQL can use when specifying the create table syntax. If you simply want any class that doesn't have the value set to be a default then rewrite your Person class like so:
class Person {
DateTime date = DateTime.now()
Period totalTime = Period.ZERO
static mapping = {
totalTime (type: PersistentPeriod)
date (type: PersistentDateTime)
}
}
Alternatively you could use defaultValue: "CURRENT_TIMESTAMP" for DateTime.now() by MySQL will expect a field type "TIMESTAMP" and not "DATETIME" in order for it to work.