Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java CGLIB代理字符串或其他最终类是如何生成的?_Java_Hibernate_Jpa_Cglib - Fatal编程技术网

Java CGLIB代理字符串或其他最终类是如何生成的?

Java CGLIB代理字符串或其他最终类是如何生成的?,java,hibernate,jpa,cglib,Java,Hibernate,Jpa,Cglib,我想问一个关于Hibernate中的惰性抓取的问题 据我所知,为了实现延迟抓取,Hibernate创建了一个占位符,它是不动产的代理 如果我的实体包含字符串属性或其他最终类怎么办?CGLIB将如何将其子类化?长话短说: CGLib根本无法代理final类,您可能在日志中看到类似于无法生成类[class SomeClass]的CGLib子类的内容:此问题的常见原因包括使用final类或不可见类 Hibernate首先代理您的实体类,并将相应的对象注入各自的getter中,因此实际的调用堆栈通常如下

我想问一个关于Hibernate中的惰性抓取的问题

据我所知,为了实现延迟抓取,Hibernate创建了一个占位符,它是不动产的代理


如果我的实体包含字符串属性或其他最终类怎么办?CGLIB将如何将其子类化?

长话短说:

  • CGLib根本无法代理final类,您可能在日志中看到类似于
    无法生成类[class SomeClass]的CGLib子类的内容:此问题的常见原因包括使用final类或不可见类
  • Hibernate首先代理您的实体类,并将相应的对象注入各自的getter中,因此实际的调用堆栈通常如下所示:
  • 也就是说,您在此处陈述的所有内容都是正确的:

    Hibernate创建了一个占位符,它是真实

    如果用单词entity/pojo而不是property来结束此短语

    myEntity.getMyString()
       |_ proxy.getMyString()
         |_ lazyAttributeLoadingInterceptor.fetchAttribute(myEntity,"myString")
           |_ ... (actual call to underlying DB if required)