hibernate - 使用持久性类默认构造函数创建 SessionFactory 对象

标签 hibernate sessionfactory

在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/

相关文章:

java - 如何使用 hibernate 和 postrgresql 跨程序的多个实例锁定记录?

java - 如何使用 hibernate-core-5.2.0.Final.jar 获取所有对象

java - 系统数据库用户共享的 Hibernate Session 工厂

hibernate - Spring/Hibernate下的多个 session 工厂

java - 多个 session 工厂,一个连接?

java - 如何注册 SQL 函数,以便您可以使用 JPA 和 Hibernate 在 JPQL 或 HQL 查询中调用它们

java - 当内容超过 141 个字符时,VARCHAR 列会安静地中断 Hibernate

spring - Hibernate - Spring,SessionFactory nullPointerException(调用 getCurrentSession() 时)

grails - 创建SQL对象时使用SessionFactory与DataSource进行Grails

hibernate - Java 应用程序作为具有数据库连接的 Windows 服务