2012-02-08 62 views
1

初始化持久化hibernate的类的构造函数中的Sets时是否存在任何问题?我有,因为如果一个对象加载休眠,其集合初始化,即使它们是空的,用.equal实现问题Hibernate构造函数

即他们只是空集。在新构建的对象中,它们是空的。我知道这可以用平等的方法处理,但它有点麻烦,因为null并不等于空集。

我忽略了构造函数的原因,如果我认为从性能的角度来看,在初始化类的Set属性(创建新的HashSets或类似的东西)中没有意义,然后让它们重新初始化它们(我猜它会呢?)。

我应该不用担心这个,并在构造函数中初始化Set数据结构?或者可能为手动初始化新实例的情况创建一个特殊的构造函数。

+2

“表现...我在猜测”---你做错了。首先配置文件,然后优化如果需要:) – 2012-02-08 15:22:12

回答

5

你的对象应该有不变量,而这些不变量之一就是集合是从来没有空。它们可以是空的,但不能为空。所以是的,你应该从构造函数实例化空集。

这样做是可以忽略不计相比,工作Hibernate并不成本,网络调用数据库,等等。你不会注意到任何性能差异。

0

初始化设置的成员变量声明,使用默认的零参数的构造函数,而不用担心性能。数据库命中和网络流量完全消耗了创建空集的开销。