2017-08-27 224 views
2

在這段代碼中,我需要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

你嘗試尋找它? –

回答

3

嘗試使用@GeneratedValue(strategy = GenerationType.IDENTITY)

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

看看在這個文檔約Auto Generated Values

+1

感謝它幫助! –

2

雖然可以使用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; 
相關問題