Я пытаюсь сохранить пользователя в базе данных, используя Spring boot и JPA , но он не работает из-за этой ошибки.
com.microsoft.sqlserver.jdbc.SQLServerException:
Cannot insert explicit value for identity column in table 'Users'
when IDENTITY_INSERT is set to OFF.
Ошибка ясно, поэтому я попытался изменить вставку Identity в моей базе данных, которая была успешной, но ошибка все еще происходит. Второе, что странно в этом вопросе, это то, что я не пытаюсь указать значение c в качестве идентификатора для моей базы данных. Вот точная строка, которая отвечает за сохранение данных:
userService.save(new User("wikimmax","test","testmail@op.pl","test", Arrays.asList(new Role("ROLE_USER"))));
И есть мой класс пользователя
import javax.persistence.*;
import java.util.Collection;
@Entity
@Table(name = "Users",uniqueConstraints = @UniqueConstraint(columnNames = "email"))
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Long id;
private String firstName;
private String lastName;
private String email;
private String password;
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(
name = "users_roles",
joinColumns = @JoinColumn(
name = "user_id", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(
name = "role_id", referencedColumnName = "id"))
private Collection<Role> roles;
public User() {
}
public User(String firstName, String lastName, String email, String password) {
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
this.password = password;
}
public User(String firstName, String lastName, String email, String password, Collection<Role> roles) {
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
this.password = password;
this.roles = roles;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Collection<Role> getRoles() {
return roles;
}
public void setRoles(Collection<Role> roles) {
this.roles = roles;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", firstName='" + firstName + '\'' +
", lastName='" + lastName + '\'' +
", email='" + email + '\'' +
", password='" + "*********" + '\'' +
", roles=" + roles +
'}';
}
}
Есть моя таблица

Любые идеи высоко ценятся
ОБНОВЛЕНИЕ Мне удалось напечатать SQL запрос, сгенерированный hibernate, и он выглядит так:
insert
into
Users
(email, firstName, lastName, password, id)
values
(?, ?, ?, ?, ?)