Spring Data JDBC: 對映無ID列的表

胸怀丶若谷發表於2024-04-16

解決方案

在model層中,增加一個ID列,但需要加上@Transient,讓其對映時做忽略

@Data
@Table(name = "table_name", schema = "you_schema")
public class tableNameVo {

    @Id
    @Transient
    private Long id;

    @Column("column1")
    private String column1;

    @Column("TYPE1")
    private String type1;

@Transient註解的作用

@Transient註解用於指示持久化框架(如Hibernate)在進行物件持久化時忽略被註解的屬性。被@Transient註解標記的欄位或方法將不會被對映到資料庫表中的列。

@Transient註解通常用於表示某個屬性是臨時性的、非持久化的或不需要被持久化的。這些屬性的值不需要在資料庫中進行儲存,也不會對資料庫表產生影響。

使用場景

  • 計算屬性:某個屬性的值可以直接透過其他持久化屬性計算而得,不需要顯式地儲存到資料庫中。
  • 臨時屬性:某個屬性在物件的生命週期中僅用於臨時計算或臨時儲存,不需要被持久化。
  • 屬性導航:某個屬性僅用於在物件之間導航,而不需要對映到資料庫表中。

相關文章