Missing default specifications it is.
Hibernate reveng cannot pick up the default values from the database, so you'll have to explicitly specify it in hibernate.reveng.xml, like this:
Code:
<column name="SOME_NUMERIC_FIELD"> <!-- This one is easy enough -->
<meta attribute="default-value">BigDecimal.ZERO</meta>
</column>
<column name="SOME_DATE_FIELD"> <!-- Date fields suck. Blame the Java standard libs. -->
<meta attribute="default-value">
new java.sql.Date (new java.util.GregorianCalendar (9999, 11, 31).getTimeInMillis ())
</meta>
</column>
<column name="USER_TYPE_FIELD" type="com.company.project.usertypes.UserTypeForUserTypeField">
<!-- Having to write out the fully qualified class name sucks, too. -->
<!-- This time, blame Hibernate Tools, for not providing a way to specify user type packages. -->
<meta attribute="default-value">
UserTypeForUserTypeField.NO
</meta>
<!-- UserTypeForUserField happens to be an enum. Hibernate rightly doesn't care in the slightest. -->
</column>
Automatically inferring the default values would be a bit tricky to implement, it would have to deal with complications such as multi-field attributes, indirect attributes, attributes that live in different tables in inheritance situations, and user types. I'd find it ultra-cool to have it anway, but I guess the Tools team is lacking the manpower and outside contributors are lacking the in-depth Hibernate knowledge.
(Writing a layer that parses the JDBC-provided textual metadata into Java raw values would be classical contributor work, but cranking these raw values into Hibernate entities is too hard to do reliably.)