我正在开发一个使用Spring和Hibernate的Java web应用程序。此应用程序包含使用hbm2java自动生成的持久性类。这些类中包括带有多个参数的构造函数(以及典型的默认构造函数)。这些非默认构造函数不能被任何其他方法直接访问。也没有任何显式的spring定义调用这些类,所以它似乎是死代码…
现在我知道这个问题非常模糊,但是Hibernate通常通过反射调用这些构造函数是否有任何正常的原因?我知道它使用Class<T>.getInstance()
调用默认构造函数来创建对象的新实例,但仅此而已……
没有,因为hibernate会使用它们。
在实例化和初始化实体类时,这种类型的构造函数通常很有用。与使用默认构造函数和调用多个setter不同,使用接受多个参数的构造函数更容易。
看看你的数据库。通常hibernate会为数据库中的所有列创建构造函数,然后为所有必填字段创建另一个构造函数。