It all depends on the configuration of your project, hibernate at the end is an abstraction layer based on data that you can decide to exploit or not. That already depends on each company and each project, you can follow several approaches with hibernate that depend on the configuration in the application.properties or the .yml of your project:
spring.jpa.hibernate.ddl-auto
This value is what defines how restrictive it is to hibernate in your project and can take several values:
create: Hibernate manages the database, that is, when you lift the project, what you have in your database is deleted and hibernate creates your schema data based on entities.
update: Hibernate checks your database and your entities, the database does not touch or delete anything. Then Hibernate reviews the entities and checks if each entity and each field exist in the database, if they do not exist, it creates them but respecting what already exists. In this approach, your entities do not have to match the database, if you have an entity with fewer columns than in the database, absolutely nothing happens.
validate: Hibernate never creates anything in the database, the only thing it does is to check that the data types and names in your entities are correct with the database. if you have a field like Integer in your entity but that is varchar2 in bbdd, hibernate will generate an error and will not let you lift the project.
So the answer to your question is that hibernate accepts several approaches and it is a decision of the architecture of the application which one you want to adopt.