# JPA创建或修改数据库的表注释和字段注释 **Repository Path**: lcz2000/zhou-jpacomment ## Basic Information - **Project Name**: JPA创建或修改数据库的表注释和字段注释 - **Description**: JPA创建或修改数据库的表注释和字段注释 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-03-01 - **Last Updated**: 2024-06-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # zhou-jpacomment JPA创建或修改数据库的表注释和字段注释 ## 说明: JPA 比较方便,让开发免于手动创建表操作,但有一个问题表中字段无注释,虽然JPA有提供方法,但无法适应所有主流数据库。 JPA 自身提供方法如下: ```java public class MyEntity { @Column(nullable = false,columnDefinition = "int(2) comment '我是年龄注释...'") private Integer age; } ``` 其中 **columnDefinition** 其实就是写 Native Sql,这样违背了JPA的初衷“屏蔽底层数据库差异”。 zhou-jpacomment 目前适配了五种数据库 Mysql Sqlserver oracle 达梦 人大金仓,后期可以添加其他数据库。 zhou-jpacomment 的方法很简单将 java属性上的注解注释内容 修改到表字段里面。 用法如下: 在yaml文件中添加 ```yaml jpa: comment: enable: true ``` Entity 实体类里面添加注解 **@TableComment** 和 **@ColumnComment** ```java package org.example.entity; import com.zhou.starter.jpacomment.annotation.ColumnComment; import com.zhou.starter.jpacomment.annotation.TableComment; import lombok.Data; import lombok.EqualsAndHashCode; import org.example.base.BaseEntity; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Table; /** * @author zhou */ @Data @Entity @Table(name = "sys_user") @TableComment("用户表") public class User { private static final long serialVersionUID = 1L; @Id @ColumnComment("id") private Long id; @ColumnComment("用户名称") private String name; } ``` 开启日志打印 application.ymal 中添加 ```yaml logging: level: root: INFO com.zhou: debug # jpacomment-spring-boot-starter日志打印 ``` 控制台可以打印如下信息: ``` 。。。 2024-03-01 15:30:53.227 DEBUG 10476 --- [nio-8848-exec-3] c.z.s.j.service.JpacommentService : 修改表 T_SYS_ORG 字段 orgId 的注释为 '性别 1 男 2 女' 2024-03-01 15:30:53.230 DEBUG 10476 --- [nio-8848-exec-3] c.z.s.j.service.JpacommentService : 修改表 T_SYS_ORG 字段 orgName 的注释为 '性别 1 男 2 女' 2024-03-01 15:30:53.232 DEBUG 10476 --- [nio-8848-exec-3] c.z.s.j.service.JpacommentService : 修改表 T_SYS_ORG 字段 RVERSION 的注释为 '乐观锁版本号' 2024-03-01 15:30:53.235 DEBUG 10476 --- [nio-8848-exec-3] c.z.s.j.service.JpacommentService : 修改表 T_SYS_ORG 字段 CREATE_DATE 的注释为 '创建时间' 2024-03-01 15:30:53.237 DEBUG 10476 --- [nio-8848-exec-3] c.z.s.j.service.JpacommentService : 修改表 T_SYS_ORG 字段 CREATE_USER 的注释为 '创建人员信息' 2024-03-01 15:30:53.240 DEBUG 10476 --- [nio-8848-exec-3] c.z.s.j.service.JpacommentService : 修改表 T_SYS_ORG 字段 UPADATE_DATE 的注释为 '更新时间' 2024-03-01 15:30:53.242 DEBUG 10476 --- [nio-8848-exec-3] c.z.s.j.service.JpacommentService : 修改表 T_SYS_ORG 字段 UPDATE_USER 的注释为 '更新人员信息' 2024-03-01 15:30:53.245 DEBUG 10476 --- [nio-8848-exec-3] c.z.s.j.service.JpacommentService : 修改表 T_SYS_ORG 字段 REMARK 的注释为 '备注' 2024-03-01 15:30:53.248 DEBUG 10476 --- [nio-8848-exec-3] c.z.s.j.service.JpacommentService : 修改表 T_SYS_USER 的注释为 '用户信息表' 2024-03-01 15:30:53.250 DEBUG 10476 --- [nio-8848-exec-3] c.z.s.j.service.JpacommentService : 修改表 T_SYS_USER 字段 SEX 的注释为 '性别 1 男 2 女' 2024-03-01 15:30:53.253 DEBUG 10476 --- [nio-8848-exec-3] c.z.s.j.service.JpacommentService : 修改表 T_SYS_USER 字段 ADDRESS 的注释为 '地址' 2024-03-01 15:30:53.256 DEBUG 10476 --- [nio-8848-exec-3] c.z.s.j.service.JpacommentService : 修改表 T_SYS_USER 字段 RVERSION 的注释为 '乐观锁版本号' 2024-03-01 15:30:53.258 DEBUG 10476 --- [nio-8848-exec-3] c.z.s.j.service.JpacommentService : 修改表 T_SYS_USER 字段 CREATE_DATE 的注释为 '创建时间' 2024-03-01 15:30:53.261 DEBUG 10476 --- [nio-8848-exec-3] c.z.s.j.service.JpacommentService : 修改表 T_SYS_USER 字段 CREATE_USER 的注释为 '创建人员信息' 2024-03-01 15:30:53.264 DEBUG 10476 --- [nio-8848-exec-3] c.z.s.j.service.JpacommentService : 修改表 T_SYS_USER 字段 UPADATE_DATE 的注释为 '更新时间' 2024-03-01 15:30:53.266 DEBUG 10476 --- [nio-8848-exec-3] c.z.s.j.service.JpacommentService : 修改表 T_SYS_USER 字段 UPDATE_USER 的注释为 '更新人员信息' 。。。 ```