JPA如何映射与实体类字段名不同的数据库表列名?
JPA实体字段与数据库列名不一致的映射方法
实现映射的核心是使用@Column注解手动指定关联的数据库列名,具体操作如下:
- 首先给实体类添加
@Entity注解标记为JPA实体,再添加@Table注解指定该实体关联的数据库表为Students - 在实体类的
fname、lname字段上分别添加@Column注解,通过注解的name属性填写对应数据库的实际列名,即可完成映射
代码示例
// 注意:JPA 3.0+ 版本导入jakarta.persistence下的注解,旧版本导入javax.persistence下的对应注解 import jakarta.persistence.Entity; import jakarta.persistence.Table; import jakarta.persistence.Column; import jakarta.persistence.Id; @Entity @Table(name = "Students") public class Student { // 主键字段可根据实际业务调整,此处仅做示例 @Id private Long studentId; // 将实体字段fname映射到数据库表的firstname列 @Column(name = "firstname") private String fname; // 将实体字段lname映射到数据库表的lastname列 @Column(name = "lastname") private String lname; // 此处省略无参构造、getter、setter等必要方法 }
补充说明
- 手动在
@Column中指定的name属性优先级高于项目配置的全局命名策略,不会被全局策略覆盖 @Column还支持配置nullable、length等属性,可根据表结构约束按需添加
内容的提问来源于stack exchange,提问作者Abhilekh Dixit
相关产品推荐
相关产品推荐

