JPA(Hibernate)列映射中的原始类和包装类之间有什么区别?
例如,数据库表中有一个整数列。 那么在java模型中,它可以映射为primitive int和Integer。 我的问题是在这种情况下 int 和 Integer 有什么区别?以及性能问题? 谢谢!
For instance, there’s an integer column in a database table.
Then in java model, it can be mapped both as primitive int and Integer.
My question is what's difference between the int and Integer in this case? And performance concern?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我倾向于避免使用原语。对于 Id 属性尤其如此。这使得可以通过测试
null
来检测尚未设置的值。如果使用 Java 5 或更高版本,自动装箱可以消除痛苦(并且不是性能问题)。但也适用于其他属性。正如 @skaffman 所指出的,基元不适合可为空的列,我更喜欢代码尽可能灵活。I tend to avoid using primitives. This is especially true for the Id attribute. This makes it possible to detect a not yet set value by testing for
null
. If using Java 5 or above, auto-boxing takes away the pain (and is not a performance concern). But also for other attributes. As pointed out by @skaffman, primitives are not suitable for nullable columns and I prefer the code to be as flexible as possible.您已经提到了区别 -
Integer
可以是null
,int
不能。因此,如果您的数据库列可为空,那么您应该使用Integer
。至于性能,我不会担心。现代虚拟机非常擅长此类事情。
You've already mentioned the difference -
Integer
can benull
,int
can't. So if your database column is nullable, then you should useInteger
.As for performance, I wouldn't worry about it. Modern VMs are very good at that sort of thing.