簡體   English   中英

使用 JPA hibernate 更新數據庫時,有沒有辦法消除“TransactionRequiredException:執行更新/刪除查詢”錯誤?

[英]Is there a way to eliminate the 'TransactionRequiredException: Executing an update/delete query' error when updating a database using JPA hibernate?

當我從 java 測試 class 調用並運行此方法時,我收到javax.persistence.TransactionRequiredException: Executing an update/delete query錯誤。 我做錯了什么? 我在網上挖了一下,發現一個流行的建議是在方法中添加@Transactional注解。 不幸的是,此操作沒有解決我的查詢。 我導入import javax.transaction.Transactional;

@Transactional
        public List<TestEntity> testUpdate() {
            return execute("punit", entityManager -> {
                Query query = entityManager.createNamedQuery("myDate").setMaxResults(20);
                LocalDateTime dayBefore = LocalDateTime.now().minusDays(1);
                query.setParameter("previousDate", Timestamp.valueOf(dayBefore)).executeUpdate();
                return query.getResultList();
            });
        }

作為配置 xml 的形式,很明顯您將使用基於 spring 的事務。

請確保您用於@Transactional "org.springframework.transaction.annotation.Transactional"的導入

在您的情況下,它可能是"javax.transaction.Transactional"

只需嘗試以下代碼。 它對我來說很好。

package com.sample;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import java.util.Optional;

@Service
@Transactional
@Slf4j
public class Sample {

    @Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.SERIALIZABLE)
    public Optional<Model> updateRecord() {
        return null;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM