Hibernate中用于自动增加MySQL主键的Java注释 - @Id

问题描述:

在这段代码中,我需要id作为主键,并且它必须递增。
是ID所需的getter和setter?Hibernate中用于自动增加MySQL主键的Java注释 - @Id

@Entity 
public class Contact { 
@Id 
private Integer id; 
private String firstName; 

public Integer getId() { 
    return id; 
} 

public void setId(Integer id) { 
    this.id = id; 
} 

public String getFirstName() { 
    return firstName; 
} 

public void setFirstName(String firstName) { 
    this.firstName = firstName; 
} 
+0

你尝试寻找它? –

尝试使用@GeneratedValue(strategy = GenerationType.IDENTITY)

@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
private Integer id; 

看看在这个文档约Auto Generated Values

+1

感谢它帮助! –

虽然可以使用GenerationType.AUTOit's not a very good idea for MySQL and Hibernate 5因为它会默认为表生成器是bad for performance

所以,尽管it will disable JDBC batch inserts,你应该使用IDENTITY

@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
private Long id; 

,或者你can use native identifier generator which falls back to IDENTITY on MySQL

@Id 
@GeneratedValue(
    strategy= GenerationType.AUTO, 
    generator="native" 
) 
@GenericGenerator(
    name = "native", 
    strategy = "native" 
) 
private Long id;