tk mybatis动态sql中过滤不使用的字段

实体字段如下

@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.netmarch.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;
}

参考自:https://juejin.im/entry/5a3b482cf265da431281152b

猜你喜欢

转载自www.cnblogs.com/passedbylove/p/11685845.html
今日推荐