mybatis-plus
mybatis-plus copied to clipboard
PaginationInnerInterceptor 分页不支持默认参数?乐观锁为啥不用JPA的@Version
当前使用版本(必填,否则不予处理)
3.5.1
该问题是如何引起的?(确定最新版也有问题再提!!!)
PaginationInnerInterceptor的默认配置启动报错 ,在后面sql解析环节。
重现步骤(如果有就写完整)
实体基类如下: public abstract class CommonEntity implements ICommonEntity, Serializable {
/**
* 启用标识
*/
public static final boolean ENABLED = false;
public static final boolean DISABLED = true;
/**
* id
*/
@Id
protected String id;
/**
* 更新时间
*/
@Column(nullable = false)
protected long updateTime;
/**
* 创建时间
*/
@Column(nullable = false)
protected long createTime;
/**
* 版本号(乐观锁)
*/
@Version
@Column(columnDefinition = "integer DEFAULT 0", nullable = false)
protected int version = 0;
@Column
protected Boolean enabled = ENABLED;
@Override
public int getVersion() {
return version;
}
@Override
public void setVersion(int version) {
this.version = version;
}
/**
* 用于表单校验
*/
@Transient
@JsonIgnore
protected int serverInternal;
public int getServerInternal() {
return serverInternal;
}
public void setServerInternal(int serverInternal) {
this.serverInternal = serverInternal;
}
@Override
public String getId() {
return id;
}
@Override
public void setId(String id) {
this.id = id;
}
@Override
public long getUpdateTime() {
return updateTime;
}
@Override
public void setUpdateTime(long updateTime) {
this.updateTime = updateTime;
}
@Override
public long getCreateTime() {
return createTime;
}
@Override
public void setCreateTime(long createTime) {
this.createTime = createTime;
}
/**
* 默认启用状态 <p> 为空或 enabled == false 时为启用状态
*
* @return boolean
*/
@Override
@JsonIgnore
public boolean isEnable() {
return enabled == null || !enabled;
}
public Boolean getEnabled() {
return enabled;
}
public void setEnabled(Boolean enabled) {
this.enabled = enabled;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
CommonEntity other = (CommonEntity) obj;
if (id == null) {
return other.id == null;
} else {
return id.equals(other.id);
}
}
报错信息
报的是sqlParser的错误,是否不支持这样的基类 还有 支持乐观锁为啥不用JPA的@Version呢
CommonEntity是基类 3.1.2是可以的。
sql 解析异常未给出具体 sql 无法排查(或者提 issue https://github.com/JSQLParser/JSqlParser ),关于 jpa 注解 MP 不想引入太多的第三方依赖,MP 只做自己就行了