Ваши Java-объекты являются реальными Java-объектами, они находятся (в вашем понимании) в ММ, по крайней мере, на некоторое время. Прелесть модели программирования Hbernate / JPA заключается в том, что хотя в MM вы можете в значительной степени относиться к объектам, как к любым другим объектам Java, вносить в них некоторые изменения и т. Д. А затем в определенное время механизм постоянства Hibernate заставляет их греться. к, СМ (диск).
Вам нужно будет ознакомиться с последствиями сеансов и транзакций, чтобы понять, когда происходят переходы между MM и SM, а также, что очень важно, что произойдет, если два пользователя захотят работать с одними и теми же данными одновременно .
Может быть, начать здесь
Также возможно создавать объекты в ММ, которые (по крайней мере, на данный момент) не связаны с какими-либо данными на диске - это «временные» объекты, а также «отключать» данные в памяти от того, что находится на диске.
Суть в том, что Hibernate / JPA действительно удаляет большую часть тяжелой работы из персистентного кодирования, но не может скрыть сложность масштабирования, так как ваши объемы данных увеличиваются, сложность вашей модели данных возрастает, а действия вашего пользователя конкурируют за данные, которые вам нужны серьезно задуматься. Hibernate позволяет вам достигать хороших результатов, но он не может думать так за вас, вы должны сделать осторожный выбор, поскольку ваша проблемная область становится более сложной.