Hibernate 自定义代理生成器 - 阻止 equals() 初始化惰性代理

发布于 2024-10-21 06:33:47 字数 301 浏览 3 评论 0原文

我有实体类,这些实体类实现了自己的 equals() 函数,该函数只是比较类的 Id。遗憾的是,在 Hibernate 代理上调用 equals() 会初始化它,这在我的例子中完全没有用。

我使用 javassist 作为代理提供者。有没有办法修改代理生成代码,以便在 equals 调用期间不加载实体,而是为我做其他事情?我可以在 Hibernate 中插入自定义代理提供程序吗?

请不要开始讨论 equals 在 Hibernate 中应该如何表现,这已经很远了,关于这个话题有不同的意见,我已经知道了,这不是问题的一部分:)。

I have entity classes and these entity classes implement their own equals() function, which just compares the Ids of the classes. Sadly, invoking equals() on a Hibernate proxy initializes it, which is completly useless in my case.

I use javassist as a proxy provider. Is there a way to modify the proxy generation code to not load the entity during an equals call, but instead does something else for me? Can I plug a custom proxy provider in Hibernate?

Please do not start a discussion on how equals should behave in Hibernate, this goes to far, there are different opinions on the topic, which I already know, and is not part of the question :).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

时光无声 2024-10-28 06:33:47

如果您重写 hibernate.jar 中的类并提供您自己的 BasicLazyInitializer 实现,它就可以工作。

It works if you override classes in the hibernate.jar, and providing your own Implementation of BasicLazyInitializer.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文