最近有个项目需要新增一个接口,已有的操作数据库的方式是JPA,之前我用的方式都是Mybatis,对JPA不是太熟悉,这次做的过程中有一些药店,在这里记录下
entity类 用@javax.persistence.Entity注解标注,表明是一个Entity类,@javax.persistence.Table注解的name属性标识这个实体类对应数据库中的表名,表名字符串可以用“括起来,防止特殊字符产生歧义
实体属性使用@javax.persistence.Id 标注其是主键字段,使用@javax.persistence.Column注解的name属性标识其数据库中对应的字段名称
在主键字段对应的实体属性上使用@javax.persistence.GeneratedValue注解的strategy属性标识数据库主键字段生成规律,我使用的是mysql BIGINT unsigned 自增主键,strategy的值为javax.persistence.GenerationType枚举类的 IDENTITY实例,表明使用数据库自增
spring-boot v1.2.5.RELEASE版本的自动装配 @Autowired放到构造方法中不适用,需要直接在属性上使用,这点不好,不能使用final修饰了。使用final修饰属性,然后在构造上加@Autowired是spring-boot官方推荐的写法
JPA默认底层使用hibernate连接数据库