1、添加文章实体Post
我们在cms.entities包下面新建Post类,并实现序列化接口。
2、添加属性和对应的get,set方法
3、添加实体注解
Entity表示这是一个实体,Table里的name表示生成的表的名称。
4、字段映射
@Id表示这个属性是主键,GenerationType.AUTO主键的生成策略是AUTO,这里我们建议每个实体都是用Long类型的id作为主键,主键理论上不需要有业务意义,让他自动生成就行了,AUTO会根据数据库类型选择相应的生成方式,这样,我们可以兼容不同的数据库。
publishDate是用的驼峰命名方式,在这里我们添加Column注解,手动指定映射的字段名,改成下划线命名的方式。
因为content和summary一般使用富文本存储,存储的内容会比较大,这里我们加上Lob注解,表示这是一个大文本字段。
其他的字段我们使用默认设置,不做处理。
5、自动生成表结构
添加generate_ddl=true,jpa将自动执行ddl建表,更新表的语句。
启动应用,如果正常启动,没有报错,我们可以看到数据库多了两张表:
cms_post就是我们制定的Post实体对应的表,我们来看下表结构:
可以看到大文本采用的是longtext,普通文本是varchar(255)。
hibernate_sequence是jpa用来生成主键序列的方式,类似oracle的自增序列,这里不建议采用这种方式,mysql自带的自增属性就很好用,我们再次修改配置文件:
我们删掉这两个表,重新启动程序,可以看到,现在只有一个表了,而且,主键是采用自增的形式。
6、总结
使用JPA,我们可以很方便的直接用实体自动生成对应的表结构。
代码:
https://github.com/www15119258/springboot-study/tree/branch05