欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mybatisplus+pgsql查詢bug的解決

 更新時(shí)間:2023年03月17日 09:59:47   作者:huarui0922  
本文主要介紹了mybatisplus+pgsql查詢bug的解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

最近公司把底層數(shù)據(jù)庫,改換成了pgsql,之前一直是用的mysql。可是換了pgsql之后,現(xiàn)在發(fā)現(xiàn)跟mybatisplus集成上,居然出現(xiàn)了一些很奇怪的bug。

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

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

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

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

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

departmentId居然為null,這就很離譜

這是實(shí)體:

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.*;
 
/**
 * 用戶實(shí)體
 *
 * @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;
 
    /**
     * 真實(shí)姓名
     */
    private String realName;
 
    /**
     * 手機(jī)號(hào)碼
     */
    private String phone;
 
    /**
     * 郵箱
     */
    private String email;
 
    /**
     * 是否啟用
     * 0: 不啟用
     * 1: 啟用
     */
    private Integer status;
 
    /**
     * 部門id
     */
    private Integer departmentId;
 
    /**
     * 授權(quán)開始時(shí)間
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date authStartTime;
 
    /**
     * 授權(quán)結(jié)束時(shí)間
     */
    @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;
 
    /**
     * 注冊(cè)說明
     */
    private String remark;
 
    /**
     * 權(quán)限集合
     * 非數(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生成權(quán)限列表
        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;
    }
}

這是表結(jié)構(gòu)

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

真是百思不得其解,都后悔用這pgsql這玩意兒了,不知道有朋友遇到過這種奇怪問題沒有

到此這篇關(guān)于mybatisplus+pgsql查詢bug的解決的文章就介紹到這了,更多相關(guān)mybatisplus pgsql查詢bug內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java String轉(zhuǎn)換時(shí)為null的解決方法

    Java String轉(zhuǎn)換時(shí)為null的解決方法

    這篇文章主要介紹了Java String轉(zhuǎn)換時(shí)為null的解決方法,需要的朋友可以參考下
    2017-07-07
  • 帶你輕松搞定Java面向?qū)ο蟮木幊?-數(shù)組,集合框架

    帶你輕松搞定Java面向?qū)ο蟮木幊?-數(shù)組,集合框架

    Java是面向?qū)ο蟮母呒?jí)編程語言,類和對(duì)象是 Java程序的構(gòu)成核心。圍繞著Java類和Java對(duì)象,有三大基本特性:封裝是Java 類的編寫規(guī)范、繼承是類與類之間聯(lián)系的一種形式、而多態(tài)為系統(tǒng)組件或模塊之間解耦提供了解決方案
    2021-06-06
  • SpringBoot @CompentScan excludeFilters配置無效的解決方案

    SpringBoot @CompentScan excludeFilters配置無效的解決方案

    這篇文章主要介紹了SpringBoot @CompentScan excludeFilters配置無效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • JavaSE的類和對(duì)象你真的了解嗎

    JavaSE的類和對(duì)象你真的了解嗎

    這篇文章主要為大家詳細(xì)介紹了JavaSE的類和對(duì)象,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • ReentrantLock 非公平鎖實(shí)現(xiàn)原理詳解

    ReentrantLock 非公平鎖實(shí)現(xiàn)原理詳解

    這篇文章主要為大家介紹了ReentrantLock 非公平鎖實(shí)現(xiàn)原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Java內(nèi)部類和異常類的概念以及使用

    Java內(nèi)部類和異常類的概念以及使用

    這篇文章主要介紹了Java內(nèi)部類和異常類的概念以及使用,文中有非常詳細(xì)的代碼以及注釋,適合正在學(xué)習(xí)java基礎(chǔ)的同學(xué)們使用,需要的朋友可以參考下
    2021-04-04
  • Java中Mybatis,SpringMVC,Spring的介紹及聯(lián)系

    Java中Mybatis,SpringMVC,Spring的介紹及聯(lián)系

    這篇文章主要為大家詳細(xì)介紹了Java中Mybatis,SpringMVC,Spring的介紹及聯(lián)系,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Spring Cloud Gateway Hystrix fallback獲取異常信息的處理

    Spring Cloud Gateway Hystrix fallback獲取異常信息的處理

    這篇文章主要介紹了Spring Cloud Gateway Hystrix fallback獲取異常信息的處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • MyBatis集成Spring流程詳解

    MyBatis集成Spring流程詳解

    在實(shí)際開發(fā)中不僅僅是要展示數(shù)據(jù),還要構(gòu)成數(shù)據(jù)模型添加數(shù)據(jù),這篇文章主要介紹了SpringBoot集成Mybatis操作數(shù)據(jù)庫,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • java自定義枚舉轉(zhuǎn)換器示例

    java自定義枚舉轉(zhuǎn)換器示例

    這篇文章主要介紹了java自定義枚舉轉(zhuǎn)換器示例,需要的朋友可以參考下
    2014-05-05

最新評(píng)論