In Hibernate, the property type "date" maps to a java.sql.Date.
If you are using a java.util.Date, you will want your property type to be "timestamp".
Using "date" as you are now will cause it to look for a getter/setter that operates on a java.sql.Date, and it won't be able to find it.
See Hibernate basic type reference (6.1.1.12 and 6.1.1.14).
Edit: Addressing some naming convention concerns:
Hibernate obeys standard bean naming conventions:
- Field: someField
- Property: someField (same as field name)
- Getter: getSomeField() or isSomeField() (if it is a boolean)
- Setter: setSomeField()