2

oneToMany 関係を持つ 2 つの Entity クラスがあります。

@Entity
@XmlRootElement
@DynamicInsert (value = true)
@DynamicUpdate (value = true)
public class Matchs {

   @Id @GeneratedValue
   private Long matchId;
   private int size;

   @OneToMany(fetch = FetchType.LAZY)
   @JoinTable(name = "Match_Users",joinColumns=@JoinColumn(name="match_id"),
   inverseJoinColumns=@JoinColumn(name="user_id"))
   private List<User> users;

      //Getters & Setters
}

@Entity
@XmlRootElement
@DynamicInsert (value = true)
@DynamicUpdate (value = true)
public class User {

    @Id
    private String username;
    private String lastName,firstName,password,email;

    private Date dateOfBirth;
        //Getters & Setters
  }

特定のユーザーのすべての一致を取得したい.これは私のクエリです:

 FROM Matchs WHERE User.username=:username 

このクエリは org.hibernate.QueryException をスローします。HQLでこれを達成するにはどうすればよいですか。

4

3 に答える 3

1
 List<Matchs> list = session.createQuery("from Matchs matchs where matchs.users.username=:username").setParameter("username","myname").list();
于 2013-08-24T07:22:21.467 に答える
1

Matchsテーブルに存在しない列のデータを取得しているようです。Matchsあなたのクラスには列も関係もありませんusername

于 2013-08-24T02:20:05.513 に答える