您好,登錄后才能下訂單哦!
這篇“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怎么解決”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。