As per Hibernate reference doc
The identifier property is strictly optional. You can leave them off
and let Hibernate keep track of object identifiers internally.
How does Hibernate keep track of object internally if no identifier is defined in the entity?
Extending the question further, if there is no identifier how do we load()/get() the entity to make it persistence?
it means you don’t have to manage the identifiers yourself and don’t need the property in your Entity, but you need at least a backing field to store it and let Hibernate manage it, except for Components which are parts of an Entity and dont have an identity on their own.