当前位置: 首页 > 面试题库 >

Hibernate如何创建具体类的代理?

庄博厚
2023-03-14
问题内容

据我所知,创建一个动态Java代理需要一个接口来处理该代理。但是,Hibernate似乎可以管理其动态代理生成,而无需为实体类提供一个写接口。它是如何做到的?Hibernate文档的唯一线索是这样的事实,即类必须至少具有一个包可见的构造函数才能生成代理。

Hibernate是否使用html" target="_blank">自定义类加载器进行运行时字节码工程设计?该文档表明情况并非如此。那么他们如何围绕具体实体对象创建代理包装器呢?他们是否只是创建一些琐碎接口的代理而不关心类型安全性,然后根据需要进行转换?


问题答案:

从Hibernate 3.3开始,默认的字节码提供程序现在是Javassist而不是CGLib。

Hibernate
Core迁移指南:3.3



 类似资料:
  • 给出了什么: 我使用Hibernate代码生成生成我的模型类(Hibernate工具 4) 我想要为每个数据库表提供一个抽象基类,以及一个具体的扩展 基类应包含所有数据库字段(获取/设置) 具体类应从基层开始延伸,对于跨站字段应为空 我用阿帕奇·马文处理我的图书馆 我有一个爪哇配置的SpringMVC环境 我听说您可以覆盖Hibernate工具JAR中的Freemarker模板。但是当我使用Mav

  • 我已经创建了代理X,我如何在其中创建10个不同的代理?

  • 假设我在前面有一个表单,它有常用的字段和下拉列表。在这些下拉列表中,用户可以选择一个选项,并且每个选项都链接到Spring data JPA中的一个实体; 下拉列表包含一些标签和对应实体的链接作为值。然后,这个值在POST-request中传递给我们希望创建的实体的PagingAndSorting存储库。 假设它是一个具有username的用户,并且他必须与其中一个办公室(也是一个实体)关联: 我

  • 主要内容:一、MySql中的线程创建方式,二、具体源码,三、总结一、MySql中的线程创建方式 为了跨平台主要支持WIN和LINUX,在创建的源码中也可以看这两种创建的方式,在源码中可以清晰的看到区别这两的方式仍然使用的经典的宏判断。其实线程落到这里,基本上就回到了传统的线程处理的整个过程,只是看开发者对其是否进行二次封装和抽象。下面看一下相关的代码分析。 二、具体源码 从上一篇add_connection这个函数开始看: 首先检查一下有没有空闲的线程,如果有

  • 问题内容: 我想在Java程序中定义一个方法拦截器,换句话说,我希望有一个在每次方法调用时执行的行为。该应用程序未在应用程序服务器中执行,因此无法在调用拦截器周围使用EJB。我在标准Java库中找到了一个不错的Proxy API,但由于它在代理创建过程中需要一个接口,因此它的功能有限: 是否有类似的API不会强制将Foo.class声明为接口? 问题答案: 为什么不使用CGLIB?有关更多信息,请

  • 我有一个实体用户: 和实体课程 我需要制作 user1 课程的副本(深度副本),并将此副本添加到另一个用户 2。最后,我需要用户1有课程,用户2有课程的副本。