Java code-driven (no annotations) ORM