Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.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 在持久性类中使用多参数构造函数有什么原因吗?_Java_Hibernate_Spring_Reflection - Fatal编程技术网

Java 在持久性类中使用多参数构造函数有什么原因吗?

Java 在持久性类中使用多参数构造函数有什么原因吗?,java,hibernate,spring,reflection,Java,Hibernate,Spring,Reflection,我正在开发一个我继承的Java web应用程序,它使用Spring和Hibernate。此应用程序包含使用hbm2java自动生成的持久性类。这些类中包括具有多个参数的构造函数(以及典型的默认构造函数)。任何其他方法都不能直接访问这些非默认构造函数。也没有任何显式的spring定义来调用这些类,所以它似乎是死代码 现在我知道这个问题非常模糊,但是Hibernate通过反射调用这些构造函数有什么正常的原因吗?我知道它使用Class.getInstance()调用默认构造函数来创建对象的新实例,但仅

我正在开发一个我继承的Java web应用程序,它使用Spring和Hibernate。此应用程序包含使用hbm2java自动生成的持久性类。这些类中包括具有多个参数的构造函数(以及典型的默认构造函数)。任何其他方法都不能直接访问这些非默认构造函数。也没有任何显式的spring定义来调用这些类,所以它似乎是死代码


现在我知道这个问题非常模糊,但是Hibernate通过反射调用这些构造函数有什么正常的原因吗?我知道它使用
Class.getInstance()
调用默认构造函数来创建对象的新实例,但仅此而已

看看你的数据库。通常hibernate会为数据库中的所有列创建构造函数,然后为所有必填字段创建另一个构造函数。

不,这些字段不在那里,因为hibernate会使用它们


在实例化和初始化实体类时,这种类型的构造函数通常很有用。使用具有多个参数的构造函数比使用默认构造函数和调用多个setter更容易。

“hibernate创建构造函数”?如何实现?如果使用eclipse的hibernate插件对实体对象进行反向工程,它们将具有多个构造函数。这就是我假设的“持久性”类的意思,但这并不在问题中。正如他提到的,它有点模糊,所以我拍了一张照片!我认为是插件通过反向工程db表来生成这些实体。对不起,我刚才没有这么说!对不起,我说的持久性类是指实体类。它们的java代码是由hbm2java自动生成的。问题是Hibernate可以将构造函数上的参数从一个代码生成切换到另一个代码生成。刚刚发生在我和一个同事身上。