gpt4 book ai didi

hibernate - ColdFusion ORM 和默认构造函数(init 方法)

转载 作者:行者123 更新时间:2023-12-03 08:20:41 29 4
gpt4 key购买 nike

Hibernate 需要一个无参数构造函数,并且在所有支持方法重载的语言中,这可能不是问题,但我在 ColdFusion ORM(它依赖于 Hibernate)中遇到了一个非常烦人的问题。

如果我为我的实体声明了一个自定义构造函数(一个 init 方法),并且该构造函数需要一些参数,Hibernate 将无法再水合我的实体,因为它正在调用自定义构造函数。

由于这种行为,设计始终有效的实体几乎是不可能的,因此使 CF-ORM 几乎完全无用。

我发现的唯一解决方法是声明另一个我用作构造函数的自定义方法,这使实例化对象现在看起来像 new SomeEntity().construct(...)createObject('component', 'SomeEntity').construct(...) .挺麻烦的。。。

在这一切中非常愚蠢的是,您可以在不调用 init 的情况下实例化一个实体。使用方法 createObject ,所以我想知道他们为什么决定让 Hibernate 调用 init方法在其实现中,考虑到它甚至不传递参数并随后通过其他方式设置它们的事实。

无论如何,这个问题还有其他解决方法吗?

编辑:

I filed a bug in the Adobe Bugbase .

最佳答案

永远有效的实体很少存在。因此,拥有某种验证方法可能是您可以采用的方法之一。

或者你可以做的是继续拥有你自己的对象,并且只在 DAO 层使用 ORM。但是,您将拥有另一组类似的类,但是是的,这就是人们不喜欢 ORM 的原因。

关于hibernate - ColdFusion ORM 和默认构造函数(init 方法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28268119/

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