java - hibernate 构造函数

标签 java hibernate

在hibernate持久化类的构造函数中初始化Set有没有问题?

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

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

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

最佳答案

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

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

关于java - hibernate 构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9196084/

相关文章:

java - "Out-of-the-box"maven项目

java - Spring上下文配置

java - Spring 错误创建名称为 'jpaContext' 的 bean

java - 一半的堆使用率,但很多 ehcache 未命中

java - 无法保存所有小数位

java - 如何使用 astyanax 在 Cassandra 中设置 GCGraceSeconds?

Java SSLSocket 握手失败

java - 处理命令行参数和 Spring

java - 在 log4j2 中,我可以拥有多个同名的记录器吗?

java - Spring Boot 模拟 CREATED POST 响应