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();
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... -by-the-ow
Коллекция с Cascade = "All-Delete-Orphan" больше не была ссылаться на владение Entity Exance: Proceurestep.substeps ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Оптимизация промывки: единая много рядовая вставка на таблицу, несмотря на Cascade = 'All'
Anonymous » » в форуме Python - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Оптимизация промывки: единая много рядовая вставка на таблицу, несмотря на Cascade = 'All'
Anonymous » » в форуме MySql - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Оптимизация промывки: единая много рядовая вставка на таблицу, несмотря на Cascade = 'All'
Anonymous » » в форуме Python - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-