簡體   English   中英

有沒有一種方法可以代表休眠的數據視圖?

[英]Is there a way to represent a data view for hibernate?

我正在尋找可以讓我在數據庫級別復制像Jackson的@JsonView功能的東西。 通常,我覺得自己在嘗試平衡查詢性能和從API返回所有必需的數據之間遇到了麻煩。

例如,我有一個類似的類結構:

class Employee {
    String name;

    @ManyToOne(fetchType = EAGER)
    Company company;

    // A lot of other data
}

class Company {
    String name;

    // A lot of other data
}

現在,我想顯示一個員工列表,並在表中另外顯示每個員工的公司名稱。 理想情況下,在原始SQL世界中,我會做類似的事情

select e.name, c.name from Employees as e left join Companies as c on e.companyId = c.id

但是相反,發生的情況是休眠狀態會查詢整個公司的數據以及包括其他關系及其關系在內的數據,這通常會使其變得非常緩慢。 延遲加載也較慢,並且當您需要從控制器返回查詢的數據時不起作用。

也許有些東西可以讓我以如下方式聲明數據視圖:

class EmployeeListView {
    String name = Path.to("Employee.name");
    String companyName = Path.to("Employee.company.name")
}

對於任何關心的人, @NamedEntityGraph都是答案

暫無
暫無

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

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