gpt4 book ai didi

java - 如何检查 Hibernate 代理的代码长度?

转载 作者:行者123 更新时间:2023-11-30 10:01:03 24 4
gpt4 key购买 nike

我正在编写一个应用程序,它根据一些数据库信息编写 Java 代码。当 byte-buddy 检查在我的一个大类上创建的 Hibernate 代理的代码长度时,我遇到了 MethodTooLargeException

如果我错了,请纠正我:据我所知,Hibernate 基于我的类动态创建了一个代理类。这个 Hibernate Proxy 类在代码长度方面比原始类更大。

我希望能够检查将要生成的类的代码长度(通过 byte-buddy + Hibernate Proxy),以防止我的应用程序编写在代码长度大于 65535 字节时会导致运行时异常的类.

在这种情况下,当使用 Hibernate 代理时,我的类 EeWmo 的代码长度大于限制,这就是发生运行时异常的原因。

我该如何处理这种情况?任何见解都会非常有帮助。

谢谢。

case

最佳答案

为了避免在最可能的情况下产生性能开销,不会预先计算方法长度。代理将检测任何字段访问以添加脏标志,我认为没有办法避免此问题。理论上可以将一些代码移动到另一种方法,但我认为这不直观,因为它会改变堆栈跟踪,而且这既不是很常见的情况。

我建议您重构代码并拆分一些长方法。或者,您可以跳过相关类的检测。

关于java - 如何检查 Hibernate 代理的代码长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57658421/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com