@ Entity
публичный класс Item {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column
private Long id;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "item")
private List<Feature> features= new ArrayList<Feature>();
Детская организация:
public class Feature{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String attribute1;
private String attribute2;
private String featureCode;
@ManyToOne
private Item item;
.....
public String getFeatureCode() {
if (item != null) {
feature = item.getId() + attribute1 + attribute2;
}
return feature;
}
Вы можете видеть из моего аннотации, что когда предмет вреден, он также сохранит своих детей.
Поскольку составной идентификатор имеет очень плохую репутацию, и мне действительно нужен идентификатор его родителя в компоненте, чтобы упростить запрос, я добавляю код функции, чтобы добавить три столбца вместе.
Моя проблема в том, что идентификатор элемента генерируется из базы данных. Из отладочной информации, я предполагаю, что сначала это тот же элемент, а затем обновите элемент функции. Это приводит к пустому результату item.getId () моего featureCode.
Можно ли изменить каскадное постоянное поведение один-ко-многим, например, сначала сохранить элемент, а затем сохранить его детей?