Когда улучшаются классы сущностей и для чего? jpa, spring, hibernate, javassist

Я использую spring 3.0.6, jpa 2.0, hibernate 3.6.8. Мой вопрос: в каких ситуациях javassist используется для создания «прокси» для EntityClass? И в чем причина этого прокси? У меня есть следующая сущность:

@Entity
public MyEntity{
..

  @ManyToOne(fetch = FetchType.LAZY)
  @JoinColumn(name = "adresseID")
  private Adresse adresse;

  @OneToMany(fetch = FetchType.LAZY, mappedBy = "myEntity")
  private List<Parameter> parameters;

..
}

Когда я загружаю MyEntity из базы данных, класс сущности выглядит примерно так: MyEntity__$$_javassist. Почему это делается? Зачем? Я думаю, что здесь можно использовать обычный класс MyEntity.

Чтобы реализовать отложенную загрузку, мы можем:

  • для @OneToMany — здесь можно использовать PersistenceBag
  • для @ManyToOne — здесь следует использовать «enchancedClass», например Adress_ $$_javassist

Итак, в чем причина улучшения MyEntity? Где я могу прочитать что-нибудь еще об этом? Какую книгу/статью/блог вы можете мне порекомендовать?

5
задан dpolaczanski 16 May 2012 в 19:46
поделиться