In general, both concepts are the same. The domain model is used to describe the model of your objects from the point of view of the problem domain (i.e., the Information used to solve a specific problem or set of problems), and the entity model is used to describe the model of your objects from the point of view of the system of participants (in many cases, application that uses the model to solve problems and acts on entities).
So, in general, they are one and the same.
However, Hibernate is very flexible and, in general, does not require you to do anything with your object structure. The key is how you define mappings. In any case, I would not suggest having a DTO just to handle data storage. Hibernate does this internally using proxies ... that it works. Adding more classes just adds complexity to your application and doesn't really do much good. More difficulties are almost never good.
With Hibernate, you can have private setters or Hibernate only works in the fields and completely ignores getters / setters. In the first case, you still enter the setter, but it is confidential, and therefore it does not affect the public API of the class. When using field access, Hibernate does not need any getter or setter for the property, but it also bypasses any logic that you might have to do with other things, such as setting temporary (non-persistent) properties on your objects.
Read the hibernation guide, especially in the cartography section. This is a truly flexible ORM that does not limit you to what it should.
source share