在JPA/Hibernate中选择实体类包装类或原始类型属性的数据类型的最佳实践是哪一个?



有两种选择数据类型对于属性实体类或者将其作为基本数据类型或者将其保留为包装类.

我只是想知道哪一个被认为是最佳实践,为什么?

@Entity
class User {
@Id
private int uuid;
private long code;

private boolean isActive;

// setter & getter
}

Option-II

@Entity
class User {
@Id
private Integer uuid;
private Long code;

private Boolean isActive;

// setter & getter
}

这对Hibernate没有任何影响,因为它使用相同的Hibernate类型来表示它们。

但是对于原始类型,您无法区分原始int 0的默认值和分配的0,而null没有可能产生歧义(null id总是意味着新的实体),这就是为什么应该更倾向于使用可空的包装类型。

最新更新