持久化类中无参构造方法的必要性:
当我们通过select语句完成自定义构造器查询,持久化类中是否还需要提供无参构造器呢?
答:持久化类中需要提供无参构造器。因为在HQL语句中,当指定了查询目标,并且指定了相应构造器后。Hibernate会调用指定的构造器,来进行对象的创建以及数据的封装,但是如果没指定相应的构造器,Hibernate会调用默认的构造器。
例如:from Seller s指定了查询目标,但没有指定相应构造器,Hibernate框架就会调用默认的构造器。
我们定义了自定义构造器,还需要为实体类定义相应的默认无参构造器,否则很容易在我们查询中发生一些异常信息
例:
public Seller(){
}
我们定义了自定义构造器,还需要为实体类定义相应的默认无参构造器
增加自定义构造器,一定要补充默认构造器,否则hql=" from classname" 会出错,因为在Hibernate没有指定的查询的返回集合时候,Hibernate会自动去找默认构造器