My Java-код вызывает следующую ошибку:
«Коллекция с Cascade = 'All-Delete-Orphan' больше не ссылалась на экземпляр собственности сущности: br.com.unika.pathdetail.entity.procedurestep.substeps." < /p>
это происходит, когда пытается спасти эл. Соборы сбора не изменяются и не переназначены в коде Java; Это получено как есть и напрямую передано, чтобы сохранить. Несмотря на это, Hibernate по -прежнему запускает эту ошибку, вероятно, интерпретируя, что исходная ссылка на коллекцию была заменена или потеряна.@Entity
@Table(name = "procedure_step", indexes = {
@Index(name = "idx_pstep_code", columnList = "code, procedure_id"),
})
@Data
public class ProcedureStep extends AbstractEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@AuditableObject(mapBy = "id")
@ManyToOne(fetch = FetchType.EAGER, optional = false)
@JoinColumn(name = "account_id", updatable = false)
private Account account;
@AuditableObject(mapBy = "name")
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "procedure_id", updatable = false)
private Procedure procedure;
@AuditableObject(mapBy = "name")
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "parent_step_id")
private ProcedureStep parentStep;
// ex: 1.1.1
@Auditable
@Column(nullable = false, length = 20)
private String code;
@Auditable
@Column(name = "name", nullable = false)
private String name;
@Temporal(TemporalType.TIMESTAMP)
@Column(nullable = false, name = "created_date", updatable=false)
private Date createdDate = new Date();
@OneToMany(mappedBy = "step", cascade = CascadeType.ALL, orphanRemoval = true)
private List parameters = new ArrayList();
@OneToMany(mappedBy = "parentStep", cascade = CascadeType.ALL, orphanRemoval = true)
private List subSteps = new ArrayList();
< /code>
@Transactional(rollbackFor = Exception.class)
public List saveMany(List dtoList) throws BusinessRuleException {
Set newObjs = new HashSet();
// Convert all elements to DTO
List toSave = dtoList.stream().map(ProcedureStepDTO::toEntity).toList();
for (ProcedureStep entity : toSave) {
validateUpdatePermission(entity);
if(entity.getId() == null) {
newObjs.add(entity.getUuidCheck());
beforePersist(entity);
} else {
beforeSave(entity);
}
commonValidations(entity);
}
List saved = repository.saveAll(toSave);
for (ProcedureStep s : saved) {
if(newObjs.contains(s.getUuidCheck())) {
this.afterPersist(s);
} else {
this.afterSave(s);
}
}
return saved.stream().map(ProcedureStep::toDTO).toList();
}
< /code>
@Override
public ProcedureStep toEntity() {
ProcedureStep entity = new ProcedureStep();
this.mapCommonFields(entity);
entity.setCode(this.getCode());
entity.setName(this.getName());
entity.setCreatedDate(this.getCreatedDate());
if (this.account != null) {
entity.setAccount(this.account.toEntity());
}
if (this.procedure != null) {
entity.setProcedure(this.procedure.toEntity());
}
// Update parameters collection
if (entity.getParameters() == null) {
entity.setParameters(new ArrayList());
}
entity.getParameters().clear();
if (this.getParameters() != null && !this.getParameters().isEmpty()) {
this.getParameters().forEach(parameter ->
entity.getParameters().add(parameter.toEntity()));
}
// Update subSteps collection
if (entity.getSubSteps() == null) {
entity.setSubSteps(new ArrayList());
}
entity.getSubSteps().clear();
if (this.getSubSteps() != null && !this.getSubSteps().isEmpty()) {
this.getSubSteps().forEach(subStepDTO ->
entity.getSubSteps().add(subStepDTO.toEntity()));
}
return entity;
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... -by-the-ow
Коллекция с Cascade = "All-Delete-Orphan" больше не была ссылаться на владение Entity Exance: Proceurestep.substeps ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Оптимизация промывки: единая много рядовая вставка на таблицу, несмотря на Cascade = 'All'
Anonymous » » в форуме Python - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Оптимизация промывки: единая много рядовая вставка на таблицу, несмотря на Cascade = 'All'
Anonymous » » в форуме MySql - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Оптимизация промывки: единая много рядовая вставка на таблицу, несмотря на Cascade = 'All'
Anonymous » » в форуме Python - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-