簡體   English   中英

我可以有一個僅映射到表的某些列的實體嗎?

[英]Can I have an entity that only maps to some columns of a table?

我正在制作一個數據庫遷移工具,並且正在處理一個非常笨重的源數據庫。 它基本上是一個巨大的桌子,有超過 40-50 列。 然而,並非所有這些列對我都有用。 我只想要十幾個左右。 獲得該數據后,我將向 Web 服務發出請求,該服務將處理遷移目標端的所有內容。

我的選擇基本上是手動創建查詢以僅選擇我想要的列,或者創建一個映射我想要的列的實體。 我對使用 JPA 並不是很熟悉,所以我不確定這是否可能或確定。

我可以做類似的事情嗎

@Entity
class SomeEntity{

    @Column(name = "ColumnA")
    private String columnA;
    @Column(name = "ColumnB")
    private String columnB;
}

例如,如果數據庫中的列是

Column A | Column B | Column C | Column D

EclipseLink 會只映射我注釋的列,還是會抱怨嘗試將數據庫中的列映射到我的實體中不存在的字段? 我知道@Transient 會標記不應保留的字段。 但我想做相反的事情,忽略數據庫列,只將表部分映射到類。

你應該創建一個視圖。 讓視圖包含您認為相關的盡可能多的列。 將這些列定義為類中的字段,並像往常一樣使用休眠注釋連接它們。 但是請注意,您只能對視圖執行選擇,因此插入/更新/刪除是不可能的。

暫無
暫無

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

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