Spring Data JDBC: 映射无ID列的表

解决方案

在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注解通常用于表示某个属性是临时性的、非持久化的或不需要被持久化的。这些属性的值不需要在数据库中进行存储,也不会对数据库表产生影响。

使用场景

  • 计算属性:某个属性的值可以直接通过其他持久化属性计算而得,不需要显式地存储到数据库中。
  • 临时属性:某个属性在对象的生命周期中仅用于临时计算或临时存储,不需要被持久化。
  • 属性导航:某个属性仅用于在对象之间导航,而不需要映射到数据库表中。
posted @ 2024-04-16 13:44  胸怀丶若谷  阅读(17)  评论(0编辑  收藏  举报