簡體   English   中英

使用Hibernate從數據庫中獲取數據時,如何過濾數據?

[英]how do i filter data while fetching data from database using hibernate?

我有多個包含大量數據的表。 我只說與這個問題有關的事情。 為了在jsp上呈現數據,我只需要來自不同表的選擇性數據。

關於旅行度假,可以說我必須檢索並提供假期套票名稱,行程持續時間和每次違約的總價。

  • 假日套餐名稱在表HolidayPackage (ID,名稱)
  • 表中的行程持續時間行程Itinerary (idPkg,idItinerary,dayNum)=(給定包裹的行程行總和)
  • 價格是在兩個不同的表格中定義的基准價格和總價格

    =(總和(基本(idPkg)+總計(idPkg)))

如何從這些數據庫表中檢索選擇性數據以呈現給定假期套票的名稱,行程持續時間和總價?

我正在將Hibernate和mysql用作數據庫。

想法:

我可以使用視圖將數據提取到我的自定義Java對象Result中,其中Result定義為:

 class Result{ String name; Intger itineraryDuration; BigDecimal totalPrice; } 

另外,我可以使用函數作為視圖中列值的定義嗎?

我對視圖所做的是創建一個不可變的休眠模型類和關聯的DAO以查詢模型類。

我對模型類進行了如下注釋:

@Entity
@Immutable
@Table(name = "CLASSIFICATION_LABELS_V", schema = "CORPORATE")

我還將設置器設置為protected,但這是可選的。

如果視圖的結構類似於現有模型類,則可以使用命名查詢,並使用resultClass屬性將其映射到模型。 以下內容適用於Oracle,因此如果使用其他內容,則查詢參數將有所不同。

@NamedNativeQueries({
    @NamedNativeQuery(name = "create_product_from_template", query = "call pkg_authoring.sp_create_prod_from_template(?, :productId, :templateId)", resultClass = TblProduct.class, callable = true)
})

在休眠狀態下,可以使用以下功能:

@Formula(value = "(select fnHasProducts(customerId) from dual)")
    @AccessType("property")
    private Integer products = 0;

@Formula(value = "(select fnAssigneeForProduct(productId) from dual)")
    private Integer assignee = 0;

暫無
暫無

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

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