有数据库自身来创建表:spring.jpa.hibernate.ddl-auto=none
# 在这里,spring.jpa.hibernate.ddl-auto可以是none,update,create,create-drop,请参阅Hibernate文档,了解详细信息。 # none这是默认设置MySQL,不会更改数据库结构。 # update Hibernate根据给定的Entity结构更改数据库。 # create 每次都创建数据库,但不要在关闭时删除它。 # create-drop创建数据库,然后在SessionFactory关闭时删除它。 # 我们在这里开始是create因为我们还没有数据库结构。 # 第一次运行后,我们可以将其切换到update或none根据程序要求。update当您想对数据库结构进行一些更改时使用。 spring.jpa.hibernate.ddl-auto=none spring.datasource.url=jdbc:mysql://localhost:3306/SpringBootStudy spring.datasource.username=root spring.datasource.password=12345678
package com.example.springbootstudy.database; import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicUpdate; import javax.persistence.*; // spring jpa 中如何在插入和更新时使用数据库表的默认值 :DynamicInsert / DynamicUpdate @Entity @DynamicInsert @DynamicUpdate public class Users { // -AUTO主键由程序控制, 是默认选项 ,不设置就是这个 // -IDENTITY 主键由数据库生成, 采用数据库自增长, Oracle不支持这种方式 @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; private String phone; private String nickname; private String personalSign; private String sex; private String realName; private String personalId; private java.sql.Timestamp createTime; private java.sql.Timestamp updateTime; // 省略get set 方法 }
更改2个地方:
1. 在插入和更新时使用数据库表的默认值 :DynamicInsert / DynamicUpdate
2. IDENTITY 主键由数据库生成, 采用数据库自增长, Oracle不支持这种方式