0

我有两个实体 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
}

我的评论课是这样的:

@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);

但只要我有我的用户对象的用户 ID,我就不需要这样做。我正在寻找一种方法来将此 foreignKey 插入到我的评论表中,而无需从会话中获取用户对象,或者可能先查询数据库以获取它!

我将如何使用 JPQL 来做到这一点?

4

1 回答 1

0

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

entityManager.getReference(User.class, userId);

这不会执行任何数据库查询,但会给您一个User仅填充 ID 的实例,您可以将其传递给commentObject.setUser().

于 2013-10-13T05:23:40.047 回答