2016-04-13 19 views
2

相關的我有一個叫做局部性作爲一個實體: -Hibernate的HQL查詢得到從表中的數據與另一個表

@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; 
} 

其中包含另一個實體,稱爲城市和郵遞區號。

市是如下: -

@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; 
} 

欲獲得從局部性實體/表,其具有市ID =(例如1)

我試圖下面查詢相關的所有數據: -

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

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

但這些不起作用。

您能否建議我以某種方式查詢數據?

此外,是否有一個Eclipse插件/工具以比查詢中的每次更改重新啓動服務器更快的方式測試HQL查詢?

你還可以建議閱讀文件/書籍學習HQL嗎?

回答

1

既然你不提供任何日誌或解釋,我可以建議你嘗試以下方法:

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

爲了學習HQL我將開始與Hibernate Docs。你也可以看看Criteria API

+0

是的,這工作。實際上,架構中的列名稱中存在錯誤。因此查詢不起作用。我檢查了日誌並更正了它。非常感謝.. :) – aniltilanthe

相關問題