有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

重新启动服务器时密钥“PRIMARY”的java重复条目“1”

我正在制作一个struts2应用程序,并使用hibernate在数据库(MySql)中存储数据。现在,每当我重新启动Apache tomcat服务器时,分配给我的新对象的主键值是1,这会导致键“primary”的重复条目“1”。我尝试使用生成策略表,以便生成的新Id大于上次生成的值,因为存储上次分配的Id的表将是持久的。但我还是犯了这个错误。下面是我的班级宣言 `

@Entity
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
@Table(name="USER_DETAILS")
public class UserDetails {
    @TableGenerator(name = "employee_gen", table = "id_gen", pkColumnName = "gen_name", valueColumnName = "gen_val", allocationSize = 100)
    @Id
    @GeneratedValue(strategy = GenerationType.TABLE, generator = "employee_gen")

@Column(name ="USER_ID")
private int userId;
private UserType userType;
@Column(name ="FIRST_NAME")
private String firstName;
@Column(name = "LAST_NAME")
private String lastName;
@Column(name ="LOCATION")
private Location location;
public void setUserId(int userId) {
    this.userId = userId;
}
public int getUserId() {
    return userId;
}
public void setFirstName(String firstName) {
    this.firstName = firstName;
}
public String getFirstName() {
    return firstName;
}
public void setLastName(String lastName) {
    this.lastName = lastName;
}
public String getLastName() {
    return lastName;
}
public void setLocation(Location location) {
    this.location = location;
}
public Location getLocation() {
    return location;
}
public void setUserType(UserType userType) {
    this.userType = userType;
}
@Enumerated(EnumType.ORDINAL)
public UserType getUserType() {
    return userType;
}
}

`


共 (0) 个答案