我正在使用 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;
..
}
当我从 db 加载 MyEntity 时,实体类类似于 MyEntity__$$_javassist。为什么要完成?做什么的?我认为这里可以使用常规类 MyEntity 。
要实现延迟加载,我们可以:
- 对于@OneToMany - PersistenceBag 可以在这里使用
- 对于@ManyToOne - 这里应该使用“enchancedClass”,如 Adress_ $$ _javassist
那么增强 MyEntity 的原因是什么?我可以在哪里阅读更多有关它的信息?你能推荐我哪本书/文章/博客?