[英]What should be the data type of for id?
好的,所以我有一个实体 class 人:
@Table(name = "person")
public class Person {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.AUTO)
private int id; // -------> Integer or int??
@Column(name = "managerID")
private int managerID;
@Column(name = "name")
private String name;
@Column(name = "externalID")
private UUID externalID;
public Person(long managerID, String name) {
this.managerID = managerID;
this.name = name;
this.externalID = UUID.randomUUID();;
}
}
理想情况下,实体 id 的数据类型应该是什么,我使用的是 SQL(RDBMS)。 它应该是 int 还是 Integer? 而 id Integer,int 会引起什么问题?
只需使用原始int
类型。 当它自动递增时,绝不应该出现该字段为 null 的情况。 如果它丢失,则不能使用SELECT... WHERE id =...
引用具有其 ID 的行,因此不是有效记录。
尽管原始类型可能是在没有默认值的情况下创建id
的问题,但它不会发生在您的列中,因为您会自动递增它。 因此,如果某物具有默认值或行为,则使其不可为空; 如果它没有默认值或行为,则使其可为空。
虽然原始类型int
可以工作,但您应该使用 Object 类型Integer
以避免在使用任何 jpa 存储库实现时出现问题。 这是您可能面临的问题之一始终使用原始 object 包装器为 JPA @Id 而不是原始类型?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.