2

I have an entity Courses with oneToMany annotation to CourseUser. And i'm trying to get all rows from courses where course_name from Courses equals to course_name from CourseUser and user_name in course_usere equals to'name'. But in hql i get an error. I red all questions about same error but i hardly understand how path works. Could someone explain to me? this is hql :

"from Courses  inner join CourseUser on courses.course_name = CourseUser.course_name and CourseUser.user_name =:name "

Courses entity:

 @Entity
 @Table(name = "COURSES")

public class Courses {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "course_id")
private int course_id;

@Column(name = "course_name", nullable = false)
private String courseName;

@Column(name = "course_owner", nullable = false)
private String course_owner;

@Column(name = "course_description")
private String courseDescription;

@Column(name = "course_links")
private String links;

@Column(name = "course_category")
private String category;

@Column(name = "course_state")
private String state = "draft";

@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
private Set<CourseUser> courseUsers = new HashSet<CourseUser>(0);

and CourseUser entity:

@Entity
@Table(name = "COURSE_USERS",
    uniqueConstraints = {@UniqueConstraint(columnNames = {"course_name", "user_name"})})
public class CourseUser {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ev_id")
    private int course_id;


    @Column(name = "course_name", nullable = false)
    private String courseName;

    @Column(name = "user_name", nullable = false)
    private String userName;

    @Column(name = "course_role")
    private String courseRole;

     @Column(name = "grade")
    private int grade ;
Papich
  • 133
  • 1
  • 13

0 Answers0