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

Ash*_*oth 6 java mysql hibernate jpa identifier

在这段代码中,我需要id作为主键,并且必须递增.
id是getter和setter吗?

@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;
}
Run Code Online (Sandbox Code Playgroud)

Vla*_*cea 10

虽然你可以使用GenerationType.AUTO,但对于MySQL和Hibernate 5来说这不是一个好主意,因为它默认为TABLE生成器,这对性能有害.

因此,虽然它将禁用JDBC批量插入,但您应该使用IDENTITY:

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
Run Code Online (Sandbox Code Playgroud)

或者您可以使用可以native回溯到IDENTITYMySQL的标识符生成器:

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