在休眠 JPA 中检查生成的代理 类

Inspecting the generated proxy classes in hibernate JPA

当使用 JPA/Hibernate 时,用 @Entity 注释的 classes 可以或多或少透明地从数据库中存储、查询、检索等。

但是,当您操作通过 JPA 检索的实例时,您实际上操作的是一个 class 在应用程序启动时由 JPA 提供程序(在我的例子中是 Hibernate)创建的代理对象.

是否可以出于好奇检查/反编译这个生成的代理 class?一种选择是从 Hibernate 本身查找和修补源 - 但是,我宁愿 运行 应用程序和转储 and/or 直接找到生成的 classes。

Hibernate 使用 javassist 作为字节码提供程序。

Hibernate 也可以在编译时进行字节码编织。由于这是在编译时创建的,因此反编译和检查 woven 类 会容易得多。

https://docs.jboss.org/hibernate/orm/5.0/topical/html/bytecode/BytecodeEnhancement.html