Я знаю, что название может быть немного неясным, поэтому позвольте мне объяснить лучше:
У меня есть 2 таблицы с соответствующими объектами Hibernate.Первый объект, InventoryRegionEntity, содержит 2 члена типа InventoryDataCenterEntity.
Первый элемент является обязательным, но второй является необязательным и может иметь значение null в БД.
Моя проблема заключается в том, что когдаЯ хочу сохранить объект InventoryRegionEntity в БД, я получаю:
{
"severity": "HIGH",
"message": "ids for this class must be manually assigned before calling save(): com.gms.model.inventory.InventoryDataCenterEntity; nested exception is org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): com.gms.model.inventory.InventoryDataCenterEntity",
"requestURI": "/global-management-system/v1/region-inventory",
"type": "org.springframework.orm.jpa.JpaSystemException",
"stackTrace": null
}
Код:
@Entity
@Table(name = "inventory_region")
public class InventoryRegionEntity{
@Id
@Column(name="region", unique = true)
@Enumerated(EnumType.STRING)
@NotNull
private Region region;
@ManyToOne
@NotNull
@Cascade(CascadeType.ALL)
@JoinColumn(name="primarydc_name")
private InventoryDataCenterEntity primaryDC;
@ManyToOne
@Cascade(CascadeType.ALL)
@JoinColumn(name="secondarydc_name")
private InventoryDataCenterEntity secondaryDC;
private boolean anycast;
public boolean isAnycast () {
return anycast;
}
public void setAnycast ( boolean anycast ) {
this.anycast = anycast;
}
public Region getRegion () {
return this.region;
}
public void setRegion ( Region region ) {
this.region = region;
}
public InventoryDataCenterEntity getPrimaryDC () {
return primaryDC;
}
public void setPrimaryDC ( InventoryDataCenterEntity primaryDC ) {
this.primaryDC = primaryDC;
}
public InventoryDataCenterEntity getSecondaryDC () {
return secondaryDC;
}
public void setSecondaryDC ( InventoryDataCenterEntity secondaryDC ) {
this.secondaryDC = secondaryDC;
}
}
@Entity
@Table(name = "inventory_data_center")
public class InventoryDataCenterEntity {
@Id
@Column(unique = true)
private String name;
@Column(name = "azure_config", columnDefinition = "TEXT")
@Convert(converter = AzureConfigurationToStringConverter.class)
private List<PodCollection> azureDataCenters;
@JoinColumn(name = "monitoringprefix")
private String monitoringPrefix;
public String getName () {
return name;
}
public void setName ( String name ) {
this.name = name;
}
@Cascade(CascadeType.ALL)
public List<PodCollection> getAzureDataCenters () {
return azureDataCenters;
}
public void setAzureDataCenters ( List<PodCollection> azureDataCenters ) {
this.azureDataCenters = azureDataCenters;
}
public String getMonitoringPrefix() {
return monitoringPrefix;
}
public void setMonitoringPrefix(String monitoringPrefix) {
this.monitoringPrefix = monitoringPrefix;
}
}
и таблица регионов:
Пожалуйста, сообщите.
Спасибо