2017-04-02 4 views
0

私はこれらのテーブルがあります(合格、id_cont、ユーザー)続きを EMP(EMP_ID、名前、cont_id_cont(FK))2つのテーブル(join table)でhibernateクエリを使用するには?

@Entity 
@Table(name = "emp", catalog = "", uniqueConstraints = { 
     @UniqueConstraint(columnNames = "cont_id_cont") }) 
public class Emp implements java.io.Serializable{ 
    private int id_emp; 
    private ContUser contUser; 
    private String name; 

@Entity 
@Table(name = "cont", catalog = "", uniqueConstraints = { 
     @UniqueConstraint(columnNames = "pass") }) 
public class Cont implements java.io.Serializable{ 

    private int id_cont; 
    private String user; 
    private String pass; 
private Set<Emp> empForCont = new HashSet<Emp>(0); 
} 

:私はしたいですこのクエリ: cont.user、emp.name、emp.cont_id_contをcontから選択します inner join emp on cont.id_cont = emp.cont_id_cont where cont.user = 'gbs04405';

+0

クエリのエラーは何ですか?あなたのクエリは上手く見えます。 –

+0

@Taylor createQueryオブジェクトを作成すると、簡単に結合クエリを実行し、それらの結合テーブルから関連する値をフェッチすることができます –

答えて

1

データにアクセスするこのスタイルは、ORMのものではありません。 Hibernateを使用している場合、(通常)オブジェクトを介してデータにアクセスする必要があります。このようにするには、SQLのような制約を埋め込むのではなく、オブジェクト間に関係@OneToMany,@ManyToOne@ManyToManyを必要に応じて定義します。

さらに、SQLの代わりにHQL(またはJPQL)を使用して、必要なものを達成することを検討する必要があります。

SELECT e FROM Emp e JOIN e.contUser u WHERE u.user = :userstring 

あなたはさらにJPQL構文についてhereを確認することができます。


このようなものでなければなりません。

関連する問題