JPA实体ID-基元或对象类型(LONG或LONG) [英] JPA entity id - primitive or object type (long or Long)
本文介绍了JPA实体ID-基元或对象类型(LONG或LONG)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
您的实体的ID应该是long(基元类型)还是long(对象类型)?
- 该ID是我的表的主键,并且在数据库中从不为"null"。
- 我的同事建议使用长对象类型。
- 默认情况下,Hibernate反向工程工具为id生成一个基元类型Long。
选择什么?长还是长?
@Entity
@Table(name = "COUNTRY")
public class CountryEntity implements java.io.Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "ID")
private long id;
@Column(name = "NAME")
private String name;
@Column(name = "CURRENCY")
private String currency;
@Column(name = "PEOPLE")
private Long people;
@Column(name = "SIZE")
private Long size;
public CountryEntity() {
}
推荐答案
我认为有Long更好,因为通过检查null
值(在mysql中,ID值可以是0)来检查实体是否具有持久性标识更正确。还有一些库,比如Spring,在它们的逻辑中基于(D)类型为long(缺省情况下)的ID。有关示例,请参阅此implementation。
原语的小优势:它占用的空间更少。
PS:根据JPA规范,两者都是正确的&;并且对此问题的回答在某种程度上是基于意见的。
这篇关于JPA实体ID-基元或对象类型(LONG或LONG)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文