【问题标题】:What's difference between primitive and wrapper class in JPA (Hibernate) column mappings?JPA(Hibernate)列映射中的原始类和包装类有什么区别?
【发布时间】:2010-04-02 06:36:36
【问题描述】:

例如,数据库表中有一个整数列。 那么在java模型中,它可以映射为primitive intInteger。 我的问题是在这种情况下 int 和 Integer 有什么区别?和性能问题? 谢谢!

【问题讨论】:

  • 当然,我知道当原始int遇到数据库中的null值时会发生异常。

标签: java jpa wrapper primitive


【解决方案1】:

我倾向于避免使用原语。对于 Id 属性尤其如此。这使得通过测试null 来检测尚未设置的值成为可能。如果使用 Java 5 或更高版本,自动装箱消除了痛苦(并且不是性能问题)。但也适用于其他属性。正如@skaffman 所指出的,原语不适用于可空列,我希望代码尽可能灵活。

【讨论】:

    【解决方案2】:

    您已经提到了区别 - Integer 可以是 nullint 不能。因此,如果您的数据库列可以为空,那么您应该使用Integer

    至于性能,我不会担心。现代虚拟机非常擅长这类事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-06
      • 1970-01-01
      • 2012-02-06
      • 2016-01-02
      • 1970-01-01
      相关资源
      最近更新 更多