Java 在持久性类中使用多参数构造函数有什么原因吗?
我正在开发一个我继承的Java web应用程序,它使用Spring和Hibernate。此应用程序包含使用hbm2java自动生成的持久性类。这些类中包括具有多个参数的构造函数(以及典型的默认构造函数)。任何其他方法都不能直接访问这些非默认构造函数。也没有任何显式的spring定义来调用这些类,所以它似乎是死代码Java 在持久性类中使用多参数构造函数有什么原因吗?,java,hibernate,spring,reflection,Java,Hibernate,Spring,Reflection,我正在开发一个我继承的Java web应用程序,它使用Spring和Hibernate。此应用程序包含使用hbm2java自动生成的持久性类。这些类中包括具有多个参数的构造函数(以及典型的默认构造函数)。任何其他方法都不能直接访问这些非默认构造函数。也没有任何显式的spring定义来调用这些类,所以它似乎是死代码 现在我知道这个问题非常模糊,但是Hibernate通过反射调用这些构造函数有什么正常的原因吗?我知道它使用Class.getInstance()调用默认构造函数来创建对象的新实例,但仅
现在我知道这个问题非常模糊,但是Hibernate通过反射调用这些构造函数有什么正常的原因吗?我知道它使用
Class.getInstance()
调用默认构造函数来创建对象的新实例,但仅此而已 看看你的数据库。通常hibernate会为数据库中的所有列创建构造函数,然后为所有必填字段创建另一个构造函数。不,这些字段不在那里,因为hibernate会使用它们
在实例化和初始化实体类时,这种类型的构造函数通常很有用。使用具有多个参数的构造函数比使用默认构造函数和调用多个setter更容易。“hibernate创建构造函数”?如何实现?如果使用eclipse的hibernate插件对实体对象进行反向工程,它们将具有多个构造函数。这就是我假设的“持久性”类的意思,但这并不在问题中。正如他提到的,它有点模糊,所以我拍了一张照片!我认为是插件通过反向工程db表来生成这些实体。对不起,我刚才没有这么说!对不起,我说的持久性类是指实体类。它们的java代码是由hbm2java自动生成的。问题是Hibernate可以将构造函数上的参数从一个代码生成切换到另一个代码生成。刚刚发生在我和一个同事身上。