[英]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.