Java 什么';在JPA(Hibernate)列映射中,原语类和包装类之间的区别是什么?
例如,数据库表中有一个整数列。 然后在java模型中,它可以映射为基本int和整数。 我的问题是,在这种情况下,int和Integer之间有什么区别?和性能问题?Java 什么';在JPA(Hibernate)列映射中,原语类和包装类之间的区别是什么?,java,jpa,wrapper,primitive,Java,Jpa,Wrapper,Primitive,例如,数据库表中有一个整数列。 然后在java模型中,它可以映射为基本int和整数。 我的问题是,在这种情况下,int和Integer之间有什么区别?和性能问题? 谢谢 您已经提到了差异-Integer可以是null,int不能。因此,如果数据库列可为空,则应使用Integer 至于表现,我不担心。现代虚拟机在这方面非常擅长。我倾向于避免使用原语。对于Id属性尤其如此。这使得可以通过测试null来检测尚未设置的值。如果使用Java5或更高版本,自动装箱可以消除痛苦(并且不是性能问题)。但也适用于
谢谢 您已经提到了差异-
Integer
可以是null
,int
不能。因此,如果数据库列可为空,则应使用Integer
至于表现,我不担心。现代虚拟机在这方面非常擅长。我倾向于避免使用原语。对于Id属性尤其如此。这使得可以通过测试
null
来检测尚未设置的值。如果使用Java5或更高版本,自动装箱可以消除痛苦(并且不是性能问题)。但也适用于其他属性。正如@skaffman所指出的,原语不适用于可为null的列,我希望代码尽可能灵活。当然,我知道当原语int在数据库中遇到null值时,会发生异常。