为了账号安全,请及时绑定邮箱和手机立即绑定

查询返回大量重复记录

查询返回大量重复记录

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条经验 获得超5个赞

删除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 关注
  • 151 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信