2017-06-07 16 views
0

を使用して2つのテーブルを結合しますは、どのように私は次のような2つのエンティティを持って春データJPA

Doctor: 
@Id 
@Column(name = "ID", nullable = false, updatable = false) 
private Long id; 
... 

DoctorSpeciality: 
@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
@Column(name = "ID", nullable = false, updatable = false) 
private Long id; 

@ManyToOne 
@JoinColumn(name = "DOCTOR_ID") 
private Doctor doctor; 

@ManyToOne 
@JoinColumn(name = "SPECIALITY_ID") 
private Speciality speciality; 

私はJPAの仕様を使用して、DoctorRepositoryによってSpecialityId、与えられた、すべての医師を取得するには、これらに参加したいです。

誰かがこれを手伝ってくれますか?あなたは、次のJPQLが作動している与えられたマッピングで:あなたのDoctorRepositoryアップデート1この

@Query("Select d from Doctor d where d.speciality.id = :id") 
List<Doctor> findAllBySpeciality(@Param("id") long id); 

を試して

+0

FWIW「JPA仕様」、「JPAリポジトリ」、「JPAクエリ」などはありません。それはSpring Data JPA(!= JPA API)です。タグは、私はこのクエリが正常に実行されている –

答えて

1

@Query("Select ds.doctor from DoctorSpeciality ds where ds.speciality.id = :id") 
List<Doctor> findAllBySpeciality(@Param("id") long id); 
+0

を固定: は*医師からdoctor.id = doctor_speciality.doctor_idどこdoctor_speciality.speciality_id = 2 にdoctor_specialityに参加する選択しかし、私はJPA仕様を使用して同じことを達成したいです。 – Ganesan

+0

上記は機能していませんか? –

+0

@Ganesanは更新された答えをチェックします。このJPQLはマシン上で正常に動作しています。 –

関連する問題