溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mybatisplus+pgsql查詢bug怎么解決

發(fā)布時間:2023-03-17 14:22:08 來源:億速云 閱讀:158 作者:iii 欄目:開發(fā)技術

這篇“mybatisplus+pgsql查詢bug怎么解決”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“mybatisplus+pgsql查詢bug怎么解決”文章吧。

這是sys_user表,我要根據(jù)id查這兩條數(shù)據(jù),一個id為3,一個id為5

mybatisplus+pgsql查詢bug怎么解決

這是4條查詢語句,前2條根據(jù)id為3的查,后兩條根據(jù)id為5的查

mybatisplus+pgsql查詢bug怎么解決

以下是根據(jù)id為3來查,

mybatisplus+pgsql查詢bug怎么解決

mybatisplus+pgsql查詢bug怎么解決

數(shù)據(jù)正常查了處理,departmentId也不為空,為啥這里我要提到 departmentId這段,請接著看,

奇怪的事情發(fā)生了,當id為5的查詢時,數(shù)據(jù)也查出來了,確實是數(shù)據(jù)庫里的那兩條數(shù)據(jù),但是

departmentId居然為null,這就很離譜

mybatisplus+pgsql查詢bug怎么解決

mybatisplus+pgsql查詢bug怎么解決

這是實體:

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;
 
    /**
     * 登錄失敗次數(shù)
     */
    private Integer loginFailCount;
 
    /**
     * 角色id
     */
    @TableField(exist = false)
    private Integer roleId;
 
    /**
     * 角色名稱
     */
    @TableField(exist = false)
    private String roleName;
 
    /**
     * 注冊說明
     */
    private String remark;
 
    /**
     * 權限集合
     * 非數(shù)據(jù)庫字段屬性
     */
    @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<>();
        // 根據(jù)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;
    }
}

這是表結構

mybatisplus+pgsql查詢bug怎么解決

我把sql打印出來,拿來數(shù)據(jù)庫里執(zhí)行,都是能正常查出來的,說明單獨跟pgsql沒有關系,估計就是pgsql跟mybatisplus集成上的問題。而且也只有這一個字段出不來,并且也不是每條數(shù)據(jù)的這個字段出不來。

以上就是關于“mybatisplus+pgsql查詢bug怎么解決”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI