繁体   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