簡體   English   中英

如何在Spring Boot中使用JPA的entityManager.getReference?

[英]How do I use JPA's entityManager.getReference in Spring Boot?

https://stackoverflow.com/a/12828955/3395716https://stackoverflow.com/a/32184186/3395716之類的答案,以及其他許多答案都提到了一些enitityManager.getReference()方法,該方法可用來避免不必要的使用選擇查詢數據庫。

在嘗試使用CRUDRepository將對象保存到數據庫時,Spring Boot應用程序中出現類似問題。 我的課看起來像

class StudentSubject {
    String studentId;
    @ManyToOne
    private Subject subject;
    @ManyToOne
    private Student student;
}

我不必不必要地執行find()調用即可從數據庫中獲取學生和主題對象,而只需將它們傳遞給StudentSubjectRepository即可save()它們。 但是我已經有了主題和學生的主鍵。 因此,我想改用它們,而entityManager看起來像我所需要的。

但是我不知道這個entityManager的來源,或者在Spring Boot中是否有任何等同的實體。

如果您使用JpaRepository接口,為您的存儲庫,而不是CRUDRepository ,你將有機會獲得getOne(id)方法,它是相當於entityManager.getReference

它是正常注入的,與Spring Boot無關(Spring Boot只是Spring,盡管有一些配置差異)。

只需添加

@PersistenceContext
private EntityManager em;

您的類,您可以訪問原始EntityManager對象及其提供的所有內容。 使用它沒有錯,您無法使用存儲庫完成所有操作。

暫無
暫無

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

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