Прокси - это просто оболочка вокруг реального объекта. Когда вы звоните session.load(Person.class, 3)
, Hibernate проверит, находится ли человек с идентификатором 3 в кэше сеанса. Если это не так, он создаст прокси, сохранит его в кэше сеанса и вернет его. Прокси - это класс, который работает так:
public class PersonProxy extends Person {
private int id;
private boolean initialized = false;
public String getName() {
if (!initialized) {
// read state of the entity from database;
initialized = true;
}
return this.name;
}
...
}