簡體   English   中英

JPQL特殊查詢

[英]JPQL Special Query

我有兩個實體bean:

@Entity
public class User {
   @Id
   @GeneratedValue
   private Long id;
   @OneToMany(mappedBy="user", cascade = CascadeType.ALL)
   private List<Comment> comments = new ArrayList<Comment>();

   //SOME OTHER CLASS VARIABLES
   //GETTERS AND SETTERS
}

我的Comment類是這樣的:

@Entity
public class Comment {
   @Id
   @GeneratedValue
   private Long id;

   private String title;
   private String content;

   @ManyToOne
   private User user

   //SOME OTHER CLASS VARIABLES
   //GETTERS AND SETTERS
}

現在,我知道我可以從會話中獲取用戶對象,並為用戶設置我的注釋,以便能夠使用JPA中的加入功能:

commentObject.setUser(TheSessionGrabedUserObject/UserObjectWhichHasFetchedFromDbUsingUserId);

但是只要我有我的用戶對象的userId,我就不需要這樣做。 我正在尋找一種方法,可以將此ForeignKey插入到我的注釋表中,而無需從會話中獲取User Object或查詢數據庫以先獲取它!

我要如何使用JPQL做到這一點?

您可以使用entityManager.getReference()方法。 在您的情況下:

entityManager.getReference(User.class, userId);

這將不會執行任何數據庫查詢,但會為您提供一個User實例,其中僅填充ID,您可以將其傳遞給commentObject.setUser()

暫無
暫無

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

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