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;
}
答
尝试使用@GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
看看在这个文档约Auto Generated Values
+1
感谢它帮助! –
答
虽然可以使用GenerationType.AUTO
,it'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;
你尝试寻找它? –