【问题标题】:How hibernate change classes or object at run timehibernate 如何在运行时更改类或对象
【发布时间】:2013-07-09 16:06:50
【问题描述】:

我试图了解 hibernate 是如何工作的,即如何将 @Entity 放在一个类上使其成为一个持久类? 即

@实体 A类{ 私人int b; 公共int getB(){ 返回 b; } 公共无效setB(int b){ 这个.b = b; } } 在运行时的行为类似于下面的编写类 A类{ 私人int b; 公共int getB(){ 返回(从数据库中获取 b 的 SQL 代码) } 公共无效setB(int b){ (在 DB 中设置 b 的 SQL 代码)(b); } }

如果我们说它使用反射,那么它是如何更改方法内部的代码的?

【问题讨论】:

    标签: java hibernate jpa reflection persistence


    【解决方案1】:

    Hibernate 代理/运行时编织您的类。这意味着当其他类调用您的类的方法时,它不会直接调用它,而是调用代理。然后,此代理包含涉及持久性上下文操作的逻辑。

    如果您想深入研究这个主题,请查看 cglib 或 aspectj 等库(不一定是 hibernate 使用的库)

    【讨论】:

      猜你喜欢
      • 2012-01-20
      • 1970-01-01
      • 2016-09-28
      • 2011-08-05
      • 1970-01-01
      • 1970-01-01
      • 2011-08-04
      • 1970-01-01
      • 2011-09-20
      相关资源
      最近更新 更多