2016-04-13 17 views
2

Ich habe eine Entität namens Ort wie: -Hibernate HQL Abfrage erhalten Daten aus der Tabelle mit einer anderen Tabelle zugeordnet

@Entity 
@Table(name = "CMN_LOCALITY_MASTER") 
public class Locality { 
    @Id 
    @Column(name = "LOCALITY_ID", unique = true, nullable = false,length = 11) 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    int localityId; 

    @Column(name = "LOCALITY_DESCRIPTION",length=70) 
    String localityDescription; 

    @JsonProperty(access = Access.WRITE_ONLY) 
    @ManyToOne 
    @JoinColumn(name = "PINCODE_ID") 
    Pincode pinCode; 

    @JsonIgnore 
    @ManyToOne 
    City city; 
} 

, die eine andere Einheit enthält Stadt und Pincode genannt.

City ist wie folgt: -

@Entity 
@Table(name = "CMN_CITY_MASTER") 
public class City{ 

    @Id 
    @Column(name = "CITY_ID", unique = true, nullable = false,length = 11) 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private int cityId; 

    @Column(name = "CITY",length = 150) 
    private String description; 

    @JsonIgnore 
    @ManyToOne 
    @JoinColumn(name = "STATE_ID") 
    private State state; 
} 

ich alle Daten von Ort Einheit/table erhalten möchten, die Stadt ID hat = (zB 1)

ich unten Abfragen versucht: -

@Query("SELECT a FROM Locality a INNER JOIN a.city c WHERE c.cityId=?1") 
List<Locality>getAllLocalityByCity(int cityId); 

und auch

@Query("SELECT a FROM Locality a WHERE a.city.cityId=?1") 
List<Locality>getAllLocalityByCity(int cityId); 

Aber diese funktionieren nicht.

Können Sie mir bitte etwas vorschlagen, um die Daten abzufragen?

Gibt es auch ein Eclipse Plug-In/Tool, um HQL-Abfragen schneller zu testen als den Server für jede Änderung in der Abfrage neu zu starten?

Können Sie auch vorschlagen, Dokumente/Bücher zum Erlernen von HQL zu lesen?

Antwort

1

Da Sie keine Protokolle oder Erklärung Bereitstellung kann ich Ihnen folgendes vorschlagen versuchen:

@Query("SELECT a FROM Locality a INNER JOIN a.city c WHERE c.cityId = :cityId") 
List<Locality>getAllLocalityByCity(@Param("cityId") int cityId); 

Für das Erlernen der HQL würde ich mit Hibernate Docs starten. Sie können auch Criteria API ansehen.

+0

Ja, das hat funktioniert. Tatsächlich gab es einen Fehler im Spaltennamen im Schema. und daher funktionierte die Abfrage nicht. Ich überprüfte die Protokolle und korrigierte es. Danke vielmals.. :) – aniltilanthe

Verwandte Themen