Spring Boot / JPA: «Невозможно найти дескриптор объекта» после установки взаимосвязи @onetoone в NULL с QueryDslJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Spring Boot / JPA: «Невозможно найти дескриптор объекта» после установки взаимосвязи @onetoone в NULL с QueryDsl

Сообщение Anonymous »

Я сталкиваюсь с javax.persistence.persistenceException: Невозможно найти ошибку дескриптора сущности в приложении Spring Boot, используя JPA и QueryDsl. < /p>
Проблема возникает, когда я пытаюсь удалить и удалить @Onetoone, связанный с объектом (infustEntynity). Вот упрощенная версия моего кода: < /p>
@Transactional
public void deleteCertificatesFromEnvelope(Envelope envelope) {
if ((envelope.status == EnvelopeStatus.COMPLETED || envelope.status == EnvelopeStatus.CANCELED)
&& Objects.nonNull(envelope.envelopeSigner) && !envelope.envelopeSigner.isEmpty()) {

Predicate existsCertificate =
signer -> Objects.nonNull(signer.envelopeSignerCertificate);

Supplier supplierSigners = () ->
envelope.envelopeSigner.stream().filter(existsCertificate);

removeCertificateFromSigner(supplierSigners.get());
removeCertificates(supplierSigners.get());
}
}

private void removeCertificateFromSigner(Stream existsCertificate) {
List signers = existsCertificate
.map(signer -> signer.id)
.collect(Collectors.toList());

signerCustomRepository.deleteAllSignerCertificate(signers);
}

private void removeCertificates(Stream existsCertificate) {
List certificates = existsCertificate
.map(signer -> signer.envelopeSignerCertificate.id)
.collect(Collectors.toList());

for (UUID certificate : certificates){
certificateRepository.deleteById(certificate);
}
}
< /code>
Метод DeleTealLSignerCertificate использует QueryDSL для установки иностранного ключа на NULL: < /p>
public void deleteAllSignerCertificate(List signers) {
QEnvelopeSignerEntity entity = QEnvelopeSignerEntity.envelopeSignerEntity;
new JPAUpdateClause(entityManager, entity)
.setNull(entity.envelopeSignerCertificate)
.where(entity.id.in(signers))
.execute();
}
< /code>
и отношения определяются как: < /p>
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "envelope_signer_certificate")
private EnvelopeSignerCertificateEntity envelopeSignerCertificate;
< /code>
Я считаю, что проблема может быть вызвана использованием jpaupdateclause (от querydsl) для установки поля иностранного ключа (envelope_signer_certificate) в NULL, что нарушает отношения в базе данных без обновления контекста Hibernate. Все еще думает, что отношения не повреждены или пытаются разрешить метаданные объекта, которые больше не соответствуют состоянию в базе данных - отсюда «Невозможно найти дескриптор сущности». < /p>
Я пробовал: < /p>
. Включено в сущность Scan (@entityScan).
trable entitymanager.clear () после JPaupdateclaus>

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Spring Boot / JPA: «Невозможно найти дескриптор объекта» после установки взаимосвязи @onetoone в NULL с QueryDsl
    Anonymous » » в форуме JAVA
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Spring Data JPA OneToOne ON DELETE SET NULL
    Anonymous » » в форуме JAVA
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Spring Data JPA OneToOne ON DELETE SET NULL
    Anonymous » » в форуме JAVA
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Мой @manytoone и @onetoone всегда получают NULL (Spring Boot Java)
    Anonymous » » в форуме JAVA
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Spring данные JPA и queryDSL с небольшим сложным SQL
    Anonymous » » в форуме JAVA
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous

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