亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

查詢返回大量重復記錄

查詢返回大量重復記錄

Cats萌萌 2023-04-26 14:38:50
我嘗試從兩個表(Statement、AppCurContract)進行查詢,但收到很多重復記錄。即使我只從 Statement 進行查詢,我也會收到相同的結果。當我將 appCurContracts 字段添加到 Statement bean 時,它就開始了。我在這里發現了同樣的問題Spring Data JPA 查詢返回重復行而不是實際數據,為什么?但是我在兩個表中都有唯一的鍵。我究竟做錯了什么?這是我的代碼import com.fasterxml.jackson.annotation.JsonFormat;import lombok.Data;import lombok.EqualsAndHashCode;import javax.persistence.*;import java.time.LocalDateTime;import java.util.Date;import java.util.Set;import java.util.stream.Collectors;import java.util.stream.Stream;@Entity@Table@Data@EqualsAndHashCode(exclude = "appCurContracts")public class Statement {    @Id    @GeneratedValue(strategy = GenerationType.AUTO)    private Long id;    private String numStatement;    @Column(updatable = false)    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")    private LocalDateTime dateTimeSubmStatement;    private int filialId;    private int myself;    private int status;    private Date modifyDate;    private String nameNonResident;    private String email;    private Integer typeStatement;    @OneToMany(mappedBy = "statement", cascade = CascadeType.ALL)    private Set<AppCurContract> appCurContracts;    public Statement() {        super();    }
查看完整描述

3 回答

?
ibeautiful

TA貢獻1993條經驗 獲得超6個贊

刪除Statement 類上的setAppCurContracts方法。沒有必要。

刪除@Query 的注釋并使用findByStatus方法。



查看完整回答
反對 回復 2023-04-26
?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

自己定義 hashcode 方法,無論什么必要條件,因為set 使用它來檢查重復項。您的代碼(在您的存儲庫實現中)將變為:

List<Statement>?findDistinctByEmail(String?email);

而且您不需要 Query 注釋。


查看完整回答
反對 回復 2023-04-26
?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

我找到了解決問題的辦法。我在 AppCurContract 類的 Statement 字段中添加了@JsonIgnore注釋。


public class AppCurContract {


@Id

@GeneratedValue(strategy = GenerationType.AUTO)

private Long id;


@JsonIgnore

@ManyToOne

@JoinColumn()

private Statement statement;

private String jurPerson;

private String iin_bin;

private String nameDocument;

private String contractNum;

private String contractDate;

謝謝大家的參與


查看完整回答
反對 回復 2023-04-26
  • 3 回答
  • 0 關注
  • 188 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號