什么时候实体 – 类增强了,为什么? jpa,spring,hibernate,javassist

什么时候实体 – 类增强了,为什么? jpa,spring,hibernate,javassist,第1张

概述我使用的是spring 3.0.6,jpa 2.0,hibernate 3.6.8.我的问题是,在哪种情况下javassist用于为EntityClass创建“代理”?这个代理的原因是什么?我有以下实体:@Entity public MyEntity{ .. @ManyToOne(fetch = FetchType.LAZY) @JoinColum

我使用的是spring 3.0.6,jpa 2.0,hibernate 3.6.8.
我的问题是,在哪种情况下javassist用于为EntityClass创建“代理”?这个代理的原因是什么?
我有以下实体:

@Entitypublic MyEntity{..  @ManyToOne(fetch = FetchType.LAZY)  @JoinColumn(name = "adresseID")  private Adresse adresse;  @OnetoMany(fetch = FetchType.LAZY,mappedBy = "myEntity")  private List

当我从db加载MyEntity时,实体类就像MyEntity __ $$_ javassist.为什么这样做?做什么的?我认为这里只能使用常规类MyEntity.

要实现延迟加载,我们可以:

>对于@OnetoMany – 可以在这里使用PersistenceBag
> for @ManyToOne – 这里应该使用像“Adress _ $$_ javassist”这样的“enchancedClass”

那么什么是让MyEntity迷恋的理由呢?在哪里我可以阅读更多关于它的内容?你能推荐哪本书/文章/博客?最佳答案实体类增强的主要原因是JPA(或Hibernate)需要跟踪实体对象的状态.

特别是JPA必须知道给定的实体字段是否“脏” – 它是由用户修改的,但是这种更改尚未反映在数据库中,因此JPA必须在提交事务时将其与数据库同步.

另一种情况是实体字段的“加载”状态.可以将任何字段指定为延迟加载.当即将使用此类字段时,JPA必须知道必须执行数据库查询以初始化该字段的值.

Hibernate的默认设置是使用运行时增强 – 代理只是实体的子类,添加了额外的东西.

here概述了一些一般性的想法. 总结

以上是内存溢出为你收集整理的什么时候实体 – 类增强了,为什么? jpa,spring,hibernate,javassist全部内容,希望文章能够帮你解决什么时候实体 – 类增强了,为什么? jpa,spring,hibernate,javassist所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1267948.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)