在hibernate的xml方法中,当我们使用创建hibernate SessionFactory对象时
私有(private)静态最终SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
然后它将调用持久性类的默认构造函数 3 次,这意味着创建 Session 工厂对象需要持久性类的默认构造函数,但如果我从类中删除默认构造函数,并且在这种情况下只有参数构造函数,则 JVM 不提供默认构造函数那么 session 工厂对象是如何创建的?
最佳答案
实际上,您可以实例化没有 0-args 构造函数的类;您可以获得类构造函数的列表,选择一个并使用不同的参数调用它。 虽然这是可能的,而且我检查过它可以工作并且不会有问题,但你必须承认这很奇怪。
按照 Hibernate 的方式构造对象(我相信它会调用 0-arg 构造函数,然后它可能会通过反射直接修改实例的字段。 也许它知道如何调用 setter)有点违背了在 Java 中应该如何构造对象,并使用适当的参数调用构造函数,以便新对象是您想要的对象。
关于hibernate - 使用持久性类默认构造函数创建 SessionFactory 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27596200/