Вложенное исключение — org.hibernate.HibernateException: найдены общие ссылки на коллекцию.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Вложенное исключение — org.hibernate.HibernateException: найдены общие ссылки на коллекцию.

Сообщение Anonymous »

У меня есть две такие сущности:

Код: Выделить всё

@Data
@Builder
@Entity
@FieldDefaults(level = AccessLevel.PRIVATE)
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "refund_initiate",uniqueConstraints={@UniqueConstraint(columnNames={"device_code","installation_id"})})
public class RefundInitiate extends BaseEntity{
...
@EqualsAndHashCode.Exclude
@ToString.Exclude
@OneToMany(mappedBy = "refundInitiate")
List refundLogs;

}

@Data
@Builder
@Table(name = "refund_log")
@Entity
@NoArgsConstructor
@AllArgsConstructor
public class RefundLogs extends BaseEntity {
@EqualsAndHashCode.Exclude
@ToString.Exclude
@ManyToOne
@JoinColumn(name = "refund_initiate_id")
RefundInitiate refundInitiate;
}

И метод есть:

Код: Выделить всё

@Override
public Boolean approveRefund(Integer refundId) {
Optional refundInitiateOpt = refundInitiateRepo.findById(refundId);
if (refundInitiateOpt.isEmpty())
return false;
RefundInitiate refundInitiate = refundInitiateOpt.get();
// some logic here but haven't touched the `RefundLogs` at all
refundInitiateRepo.save(refundInitiate);
// some logic, again no changes on RefundLogs`
return true;
}
но когда я вызываю этот метод, я получаю ошибку:

Код: Выделить всё

HibernateException: Found shared references to a collection: app.model.RefundInitiate.refundLogs] with root cause

org.hibernate.HibernateException: Found shared references to a collection: app.model.RefundInitiate.refundLogs

Согласно журналам на данный момент, при сохранении возникает ошибка:

Код: Выделить всё

refundInitiateRepo.save(refundInitiate);
Я подозреваю, что это из-за старой версии Hibernate (

Код: Выделить всё

'org.hibernate:hibernate-envers:5.4.22.Final'
), но в других моих модулях такие двунаправленные сопоставления работают нормально.
Пожалуйста, помогите мне узнать, как решить эту проблему, удаление сопоставления не поможет. потому что он где-то используется.
Я пробовал использовать Cascade в качестве PERSIT, но не помогло.

Подробнее здесь: https://stackoverflow.com/questions/792 ... erences-to
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»