簡體   English   中英

如何在Hibernate中使用聯接從兩個表中獲取JSON數據?

[英]How do I get JSON data from two tables using joins in Hibernate?

select a.empname,b.dname from employee a, department b where a.deptid=b.deptid

員工表包含empid,empnamedeptid

部門表包含deptiddname

我希望這有幫助。 您需要一個DTO來存儲數據並將其作為JSON發送到前端。

@Query("new com.example.service.model.search.SearchDTO" 
            +"(e.empname, d.dname) "
            + "from department d "
            + "join d.deptid e "
            + "where e.id=?1")
    public List<SearchDTO> findByIdEmployee (Long idEmployee );

可能的DTO結構:

public class SearchDTO {

    String EnpName;
    String DepName;

    public SearchDTO(String EnpName, String DepName) {
        this.EnpName = EnpName;
        this.DepName = DepName;
    }

    public String getEnpName() {
        return EnpName;
    }

    public void setEnpName(String EnpName) {
        this.EnpName = EnpName;
    }

    public String getDepName() {
        return DepName;
    }

    public void setDepName(String DepName) {
        this.DepName = DepName;
    }

}

hql連接有一些變化。 對於hql join,如果您有Employee和Department類,我們將使用由表插入的類。 您可以使用類似的查詢

select a.empname,b.dname from Employee as a left outer join Employee.department as b

其中empname,dname和department是Employee,Department和Employee類的字段。

上面的查詢將返回列表,您必須正確處理它。 然后將此列表轉換為json對象

可以通過三種方式進行

  1. HQL
  2. 一對一映射。
  3. 使用休眠的本機查詢。

最佳使用:一對一映射。

參考: https : //github.com/Roshanmutha/hibernate-samples/blob/master/R6_One_To_One_Mapping/src/main/java/entity/User.java

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM