2016-04-03 12 views
2

Ich versuche, "findBy" Anweisung in JPA zu verwenden. Meine Entitätsklasse ist:Spring Datenrest und JPA, Abfrage nach Zuordnung

@Entity 
public class Visit { 

@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 
private long id; 

@ManyToOne 
private Specialist specialist; 

@ManyToOne 
private Treatment treatment; 

@ManyToOne 
private Office office; 
. 
. 
. 

Hier Repository:

public interface VisitRepository extends CrudRepository<Visit, Long>   { 

@RestResource(rel="byOffice", path="byOffice") 
List<Visit> findByOffice(@Param("office") Office office); 

} 

Ich versuche, alle Besuche zu finden, wo Büro ID etwas ist so mache ich die Anfrage: http://localhost:8080/visits/search/byOffice?office=1

Aber die Antwort ist:

status": 500, 
"error": "Internal Server Error", 
"exception":  "org.springframework.data.repository.support.QueryMethodParameterConversionException", 
"message": "Failed to convert 1 into core.domain.Office!", 
"path": "/visits/search/byOffice" 

Was soll ich tun, damit es funktioniert? Ist es ein guter Ansatz? Danke für Antworten!

+0

können Sie versuchen, die Anmerkung 'RestResource (rel =„byOffice“path =„byOffice“Entfernen) '? –

+0

Funktioniert nicht. Es ist nur ändern Sie den Pfad der resorce zu Standard eins (/ search/findByOffice) – Wojtek338

+0

"Konnte nicht 1 in core.domain.Office konvertieren!" Sie setzen ID nicht Sie müssen Office-Objekt –

Antwort

0

Kämpfen, um einen Weg dafür entweder zu finden. Es scheint, dass dies mit der Repository-Generation von Spring Data nicht möglich ist. Was Sie tun können, ist mit aber ein Repository für die andere Seite des Vereins und es auf diese Weise verwenden:

http://localhost:8080/offices/1/visits 
Verwandte Themen