Я пытаюсь реализовать отображение OneToMany
с помощью составного первичного ключа в моем приложении.Сущности, включенные в приложение, следующие:
// Config data
@Data
@Entity
public class Config {
@Id
@GeneratedValue
private int id;
@OneToMany(mappedBy = "config", fetch = FetchType.EAGER, cascade = { CascadeType.ALL })
private Set<Mapping> mappings;
}
Класс с составным ключом:
@Data
@Entity
public class Mapping {
@EmbeddedId
private MappingId mappingId;
@ElementCollection
private List<Integer> values;
@ManyToOne
@JoinColumn(name = "id", nullable = false, insertable = false, updatable = false)
private Config config;
}
Составной ключ:
@Data
@Embeddable
public class MappingId implements Serializable {
private int id;
private String comment;
}
Теперь,Я пытаюсь сохранить следующие данные Config
json:
{
"mappings": [
{
"mappingId": {
"comment": "comment#1"
},
"values": [
123,
456
]
}
]
}
Код должен автоматически генерировать значение для столбца id
и назначать его для Config.id
и Mapping.mappingId.id
.Но значения этих переменных не совпадают.После вызова метода save
для объекта config
значение Config.id
устанавливается на 1
, тогда как Mapping.mappingId.id
устанавливается на 0
, что является неправильным.Может кто-нибудь сказать мне, что здесь происходит не так?
Спасибо.