Java Hibernate构造函数

Java Hibernate构造函数,java,hibernate,Java,Hibernate,在使用hibernate持久化的类的构造函数中初始化集合是否有问题 我在.equal实现方面遇到了问题,因为如果一个对象加载了hibernate,那么它的集合即使是空的,也会被初始化,也就是说,它们只是空的集合。其中,在新构造的对象中,它们为null。我知道这可以用equal方法来处理,但它有点混乱,因为null实际上并不等于一个空集 我忽略构造函数的原因是,如果从性能的角度来看,初始化类的集合属性(创建新的哈希集或类似的东西)没有意义,然后让hibernate重新初始化它们(我猜会吗?) 我应

在使用hibernate持久化的类的构造函数中初始化集合是否有问题

我在.equal实现方面遇到了问题,因为如果一个对象加载了hibernate,那么它的集合即使是空的,也会被初始化,也就是说,它们只是空的集合。其中,在新构造的对象中,它们为null。我知道这可以用equal方法来处理,但它有点混乱,因为null实际上并不等于一个空集

我忽略构造函数的原因是,如果从性能的角度来看,初始化类的集合属性(创建新的哈希集或类似的东西)没有意义,然后让hibernate重新初始化它们(我猜会吗?)


我应该不用担心这一点,在构造函数中初始化集合数据结构吗?或者为手动初始化一个新实例创建一个特殊的构造函数。

您的对象应该有不变量,其中一个不变量是集合从不为空。它们可以为空,但不能为空。因此,是的,您应该从构造函数实例化空集


与Hibernate所做的工作、对数据库的网络调用等相比,这样做的成本可以忽略不计。您不会注意到性能上的任何差异。

您的对象应该具有不变量,其中一个不变量是集合从不为空。它们可以为空,但不能为空。因此,是的,您应该从构造函数实例化空集

与Hibernate所做的工作、对数据库的网络调用等相比,执行此操作的成本可以忽略不计。您不会注意到性能上的任何差异。

“性能…我猜”——您做错了。首先配置文件,然后在必要时进行优化:)“性能……我猜是吧”——你做错了。首先配置文件,然后根据需要进行优化:)