这篇“mybatisplus+pgsql查询bug怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mybatisplus+pgsql查询bug怎么解决”文章吧。
这是sys_user表,我要根据id查这两条数据,一个id为3,一个id为5
这是4条查询语句,前2条根据id为3的查,后两条根据id为5的查
以下是根据id为3来查,
数据正常查了处理,departmentId也不为空,为啥这里我要提到 departmentId这段,请接着看,
奇怪的事情发生了,当id为5的查询时,数据也查出来了,确实是数据库里的那两条数据,但是
departmentId居然为null,这就很离谱
这是实体:
package com.xmirror.entity.entity.system;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.xmirror.entity.base.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import java.beans.Transient;
import java.util.*;
/**
* 用户实体
*
* @author Wang, Haoyue
* @since 2020/9/11 2:04 下午
*/
@Data
@TableName("sys_user")
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class User extends BaseEntity implements UserDetails {
/**
* 用户名
*/
private String username;
/**
* 密码
*/
private String password;
/**
* 真实姓名
*/
private String realName;
/**
* 手机号码
*/
private String phone;
/**
* 邮箱
*/
private String email;
/**
* 是否启用
* 0: 不启用
* 1: 启用
*/
private Integer status;
/**
* 部门id
*/
private Integer departmentId;
/**
* 授权开始时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date authStartTime;
/**
* 授权结束时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date authEndTime;
/**
* 登录失败次数
*/
private Integer loginFailCount;
/**
* 角色id
*/
@TableField(exist = false)
private Integer roleId;
/**
* 角色名称
*/
@TableField(exist = false)
private String roleName;
/**
* 注册说明
*/
private String remark;
/**
* 权限集合
* 非数据库字段属性
*/
@TableField(exist = false)
private List<Permission> authorities;
public User() {
}
public User(Integer id){
super.setId(id);
}
public User(List<Permission> authorities, User user) {
this.authorities = authorities;
super.setId(user.getId());
super.setModifyDate(user.getModifyDate());
super.setCreateDate(user.getCreateDate());
username = user.getUsername();
password = user.getPassword();
realName = user.getRealName();
phone = user.getPhone();
email = user.getEmail();
status = user.getStatus();
departmentId = user.getDepartmentId();
authStartTime = user.getAuthStartTime();
authEndTime = user.getAuthEndTime();
}
@Transient
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
List<SimpleGrantedAuthority> auth = new ArrayList<>();
// 根据Permission生成权限列表
Optional.ofNullable(authorities)
.ifPresent(p -> p.forEach(permission -> {
auth.add(new SimpleGrantedAuthority(permission.getExpression()));
}));
return auth;
}
@Transient
@Override
public boolean isAccountNonExpired() {
return true;
}
@Transient
@Override
public boolean isAccountNonLocked() {
return true;
}
@Transient
@Override
public boolean isCredentialsNonExpired() {
return true;
}
@Transient
@Override
public boolean isEnabled() {
return true;
}
}
这是表结构
我把sql打印出来,拿来数据库里执行,都是能正常查出来的,说明单独跟pgsql没有关系,估计就是pgsql跟mybatisplus集成上的问题。而且也只有这一个字段出不来,并且也不是每条数据的这个字段出不来。
以上就是关于“mybatisplus+pgsql查询bug怎么解决”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://blog.csdn.net/huarui0922/article/details/129554275