首先在pom.xml文件中引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
在appication.yml中添加配置
jpa:
database: mysql
show-sql: true
hibernate:
ddl-auto: update
properties:
hibernate:
dialect: org.hibernate.dialect.MySQL5Dialect
创建实体类
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import javax.persistence.*;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Objects;
@Data
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
@Entity
@TableName("post")
@Table(name = "post",indexes = {
@Index(name = "uuid_index", columnList = "uuid", unique = true)
})
public class PostEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@TableField(value = "uuid")
@Column(name = "uuid", nullable = false, columnDefinition = "char(64) COMMENT 'UUID'")
private String uuid;
@TableField(value = "name")
@Column(name = "name", nullable = false, columnDefinition = "char(64) COMMENT '帖子名称'")
private String name;
@TableField(value = "operator_id")
@Column(name = "operator_id", nullable = false, columnDefinition = "bigint COMMENT '操作人id'")
private Long operatorId;
@TableField(value = "create_time")
@Column(name = "create_time",nullable = false, columnDefinition = "datetime COMMENT '创建时间'")
private LocalDateTime createTime;
@TableField(value = "update_time")
@Column(name = "update_time",nullable = false, columnDefinition = "datetime COMMENT '更新时间'")
private LocalDateTime updateTime;
}
项目启动后自动创建表。 但是此时我们创建出来的表中的字段顺序不是按照entity中字段的顺序,这是因为jpa默认是按照treeMap去创建的,我们找到源码中的PropertyContainer类,然后在项目中创建一个相同的目录org.hibernate.cfg,然后将PropertyContainer类复制到我们创建的目录下,在这个类中奖TreeMap替换成LinkedHashMap,再次启动后发现创建的表中的字段的顺序跟我们entity中的顺序一致。