我应该在 JPA2.0 中使用基元还是包装器?

2022-09-03 00:39:17

我在SO上看到了这个问题,它倾向于导致基元,也从coderanch看到了这个问题,它倾向于导致包装器。两者也都略显陈旧。

我没有任何特殊需求,只是想知道一个标准的良好做法。

网络上的例子也好坏参半。例如,一些像这样去:

@Id
@Column(name = "CUSTOMER_ID")
public long customerId;

其他带有包装器:

@Id
@Column(name = "CUSTOMER_ID")
public Long customerId;

答案 1

两者之间的区别在于可空性。基元类型不能为空,而“包装”类型可以为空。

我更喜欢使用包装类型,因为您可以判断对象是否已保存/加载到数据库/从数据库中加载id值是否为空。

我不认为这里有一个“最佳实践”,也许是风格问题?


答案 2

Hibernate 建议您:

我们建议您在持久类上声明一致命名的标识符属性,并使用可为 null(即非基元)的类型。更多


推荐