实体字段如下
@Data @NoArgsConstructor @AllArgsConstructor @Builder /*** * app图标 */ @JsonFormat public class ApiCertificate{ @Id @GeneratedValue(generator = "JDBC") private Integer id; private String url; private Integer order; private Integer creatorId; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDateTime createTime; }
数据库使用主键自增,因此在插入sql时不再需要以下形式
insert to api_cert(id,url,order,creator_id) value(?,?,?,?)
实际插入语句
以下即可
insert to api_cert(url,order,creator_id) values(?,?,?)
解决办法,在主键上加注解
@Transient 此关键字是JSR-220/JSR-338注解
修改后代码如下
import com.fasterxml.jackson.annotation.JsonFormat; import com.xxx.web.bean.PagesStatic; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.format.annotation.DateTimeFormat; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Transient; import java.time.LocalDateTime; @Data @NoArgsConstructor @AllArgsConstructor @Builder /*** * app图标 */ @JsonFormat public class ApiCertificate{ @Id @GeneratedValue(generator = "JDBC") @Transient private Integer id; private String url; private Integer order; private Integer creatorId; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDateTime createTime; }