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注解通常用于表示某个属性是临时性的、非持久化的或不需要被持久化的。这些属性的值不需要在数据库中进行存储,也不会对数据库表产生影响。
使用场景
- 计算属性:某个属性的值可以直接通过其他持久化属性计算而得,不需要显式地存储到数据库中。
- 临时属性:某个属性在对象的生命周期中仅用于临时计算或临时存储,不需要被持久化。
- 属性导航:某个属性仅用于在对象之间导航,而不需要映射到数据库表中。
学以致用,知行合一