Rules
has default no-argument constructor
provide an id property
avoid "final" on class and method (allow proxy)
setter and getters for persistent properties
Inheritance
subclass inherit id from parent
Implements equals() and hashCode() if (1) use set, or (2) use reattachment.
if ID is automatically generated, not suitable for equals() and hashCode() implementation
business key (key in real world) is recommended for equals() and hashCode()
Dynamic models - Hibernate also supports dynamic models (maps).
Tuplizers -