У меня есть простой проект с пружинной загрузкой / гибернацией, и у меня есть ошибки при вставке новых значений в модульные тесты.
для тестов я использую новую базу данных с фиктивными данными (data.sql)
После запуска, когда запускаются тесты на вставку, у меня появляется ошибка «Key Violation»:
2019-01-15 10:14:00,286 ERROR [main] org.hibernate.engine.jdbc.spi.SqlExceptionHelper: Unique index or primary key violation: "PRIMARY KEY ON PUBLIC.NATURAL_PERSON_CATEGORY(ID)"; SQL statement:
insert into natural_person_category (created_by, creation_date, deletion_by, deletion_date, modification_date, modificationd_by, comment, label, id) values (?, ?, ?, ?, ?, ?, ?, ?, ?) [23505-194]
Я управляю идентификаторами с помощью аннотаций: @Id @GeneratedValue (стратегии = GenerationType.AUTO)
Когда я изменяю идентификатор в моих фиктивных данных (например, от 1 до 100), это работает ....
Мои POJO:
@Data
@Entity
@Table
public class NaturalPerson {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@JsonProperty("id_natural_person")
protected Integer id;
@JsonProperty("first_name")
private String firstName;
@JsonProperty("last_name")
private String lastName;
@JsonProperty("is_minor")
private boolean isMinor;
private String mail;
@OneToMany(cascade = CascadeType.ALL)
private List<Address> addresses;
@OneToOne(cascade = CascadeType.ALL)
@JsonProperty("category")
private NaturalPersonCategory naturalPersonCategory;
@JsonProperty("is_main")
private boolean isMain;
@JsonGetter("fullname")
public String getFullname() {
return this.firstName + " " + this.lastName;
}
}
@Data
@Entity
@Table
public class Address {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@JsonProperty("id_address")
protected Integer id;
private String line1;
private String line2;
private String line3;
@JsonProperty("postal_code")
private String postalCode;
private String city;
@ManyToOne
@JoinColumn(name = "id_country")
private Country country;
@JsonProperty("start_date")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date startDate;
@JsonProperty("end_date")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date endDate;
}
@Data
@Entity
@Table
public class NaturalPersonCategory {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@JsonProperty("id_natural_person_category")
protected Integer id;
@NotNull
protected String label;
@Column(columnDefinition = "TEXT")
protected String comment;
}
thank'you