【发布时间】:2015-05-05 19:10:29
【问题描述】:
有人可以帮我在这个多对多连接上进行 SELECT 查询吗?我想在我的 EJB 类中选择由用户 id 指定的注册用户。
课程实体sn-p
Public class Course implements Serializable {
...
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private long id;
@ManyToMany
@JoinTable(name="course_user", joinColumns={@JoinColumn(name="course_id", referencedColumnName="id")},
inverseJoinColumns={@JoinColumn(name="user_id", referencedColumnName="id")})
private List<User> enrolledStudents;
...
用户实体sn-p
public class User implements Serializable {
private static final long serialVersionUID = 1L;
...
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private long id;
@ManyToMany(mappedBy="enrolledStudents")
private List<Course> enrolledCourses;
...
例如,这是我在 EJB 中的另一个选择查询,但它不在 ManyToMany 上。我想要类似的东西,但不知道如何..
public List<Course> findOwndedCourses(long id) {
TypedQuery<Course> query = entityManager.createQuery("SELECT c FROM Course c WHERE c.owner.id = :ownerId", Course.class);
query.setParameter("ownerId", id);
return query.getResultList();
}
谢谢大家的帮助!!
【问题讨论】:
-
“选择由用户ID指定的注册用户”是什么意思?您想为给定的课程 ID 选择用户吗?
-
嗨,David.. 我正在谈论这个 /** * 查找课程,ID 为 (userId) 的用户在哪里注册。 * 参数 userId,用户 ID。 * 返回用户注册课程的列表。 */ List
findEnrolledCourses(long userId);
标签: sql database jakarta-ee jpa ejb