JPA(Hibernate)列映射中的原语和包装类之间有什么区别?

时间:2010-04-02 06:36:37

标签: java jpa wrapper primitive

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

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:3)

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

至于表现,我不担心。现代虚拟机在这方面非常擅长。