Java 无法提取结果集;SQL[n/a];嵌套异常为org.hibernate.exception.sqlgrammareexception:无法提取结果集delete无法工作

Java 无法提取结果集;SQL[n/a];嵌套异常为org.hibernate.exception.sqlgrammareexception:无法提取结果集delete无法工作,java,spring,hibernate,Java,Spring,Hibernate,嗯,我所做的只是在REST API中删除一个PAI,但出于某种原因,我得到了所有这些错误跟踪(我必须说PAI,我只知道它与Documentos和Moneda表有关,在其中一个错误中,它说我不知道,除了Remesatable之外,当它与PAI没有直接关系时): PaisServiceImpl: public void getEliminaPais(长pais_id){ 布尔existpeais=paisRepo.existsById(pais_id); 如果(existePais){ //pais

嗯,我所做的只是在REST API中删除一个PAI,但出于某种原因,我得到了所有这些错误跟踪(我必须说PAI,我只知道它与Documentos和Moneda表有关,在其中一个错误中,它说我不知道,除了Remesatable之外,当它与PAI没有直接关系时):

PaisServiceImpl:

public void getEliminaPais(长pais_id){
布尔existpeais=paisRepo.existsById(pais_id);
如果(existePais){
//paisRepo.deleteById(pais_id);
paisRepo.delete(paisRepo.findById(pais_id.get());//此处失败
}否则{
抛出新的IllegalArgumentException(“Pais con id”.concat(String.valueOf(existePais).concat(“no existe”));
}
}
Pais.java

@OneToMany(mappedBy = "pais", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnore
private Set<Documento> documento;

@OneToOne(mappedBy = "pais", cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnore
private Moneda moneda;

@OneToMany(mappedBy = "pais", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnore
private Set<Feriado> feriados;

@OneToMany(mappedBy = "pais", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnore
private Set<Corresponsable> corresponsables;    
@ManyToOne
@JoinColumn(name = "remesa_id", nullable = true)
private Remesa remesa;

@ManyToOne
@JoinColumn(name = "moneda_id", nullable = true)
@JsonIgnore
private Moneda moneda;

@ManyToOne
@JoinColumn(name = "pais_id", nullable = true)
@JsonIgnore
private Pais pais;
@OneToMany(mappedBy = "remesa", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnore
private Set<Documento> documento;

@OneToOne(mappedBy = "remesa", cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnore
private EnvioRemesa envio_id;
@OneToOne
@JoinColumn(name = "pais", nullable = true)
@JsonProperty("pais")
private Pais pais;

@OneToMany(mappedBy = "moneda", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnore
private Set<Corresponsable> corresponsables;

@OneToMany(mappedBy = "moneda", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnore
private Set<Documento> documentos;

@OneToOne(mappedBy = "moneda", cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnore
private Remesa remesa;
Remesa.java

@OneToMany(mappedBy = "pais", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnore
private Set<Documento> documento;

@OneToOne(mappedBy = "pais", cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnore
private Moneda moneda;

@OneToMany(mappedBy = "pais", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnore
private Set<Feriado> feriados;

@OneToMany(mappedBy = "pais", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnore
private Set<Corresponsable> corresponsables;    
@ManyToOne
@JoinColumn(name = "remesa_id", nullable = true)
private Remesa remesa;

@ManyToOne
@JoinColumn(name = "moneda_id", nullable = true)
@JsonIgnore
private Moneda moneda;

@ManyToOne
@JoinColumn(name = "pais_id", nullable = true)
@JsonIgnore
private Pais pais;
@OneToMany(mappedBy = "remesa", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnore
private Set<Documento> documento;

@OneToOne(mappedBy = "remesa", cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnore
private EnvioRemesa envio_id;
@OneToOne
@JoinColumn(name = "pais", nullable = true)
@JsonProperty("pais")
private Pais pais;

@OneToMany(mappedBy = "moneda", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnore
private Set<Corresponsable> corresponsables;

@OneToMany(mappedBy = "moneda", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnore
private Set<Documento> documentos;

@OneToOne(mappedBy = "moneda", cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnore
private Remesa remesa;
@OneToMany(mappedBy=“remesa”,fetch=FetchType.LAZY,cascade=CascadeType.ALL,orphan=true)
@杰索尼奥雷
私人设置文档;
@OneTONE(mappedBy=“remesa”,cascade=CascadeType.ALL,orphan=true)
@杰索尼奥雷
私有EnvioRemesa envio_id;
Moneda.java

@OneToMany(mappedBy = "pais", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnore
private Set<Documento> documento;

@OneToOne(mappedBy = "pais", cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnore
private Moneda moneda;

@OneToMany(mappedBy = "pais", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnore
private Set<Feriado> feriados;

@OneToMany(mappedBy = "pais", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnore
private Set<Corresponsable> corresponsables;    
@ManyToOne
@JoinColumn(name = "remesa_id", nullable = true)
private Remesa remesa;

@ManyToOne
@JoinColumn(name = "moneda_id", nullable = true)
@JsonIgnore
private Moneda moneda;

@ManyToOne
@JoinColumn(name = "pais_id", nullable = true)
@JsonIgnore
private Pais pais;
@OneToMany(mappedBy = "remesa", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnore
private Set<Documento> documento;

@OneToOne(mappedBy = "remesa", cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnore
private EnvioRemesa envio_id;
@OneToOne
@JoinColumn(name = "pais", nullable = true)
@JsonProperty("pais")
private Pais pais;

@OneToMany(mappedBy = "moneda", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnore
private Set<Corresponsable> corresponsables;

@OneToMany(mappedBy = "moneda", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnore
private Set<Documento> documentos;

@OneToOne(mappedBy = "moneda", cascade = CascadeType.ALL, orphanRemoval = true)
@JsonIgnore
private Remesa remesa;
@OneToOne
@JoinColumn(name=“pais”,nullable=true)
@JsonProperty(“pais”)
私人Pais Pais;
@OneToMany(mappedBy=“moneda”,fetch=FetchType.LAZY,cascade=CascadeType.ALL,orphan=true)
@杰索尼奥雷
私有集对应关系;
@OneToMany(mappedBy=“moneda”,fetch=FetchType.LAZY,cascade=CascadeType.ALL,orphan=true)
@杰索尼奥雷
私人设置文档;
@OneTONE(mappedBy=“moneda”,cascade=CascadeType.ALL,orphan=true)
@杰索尼奥雷
私人雷梅萨·雷梅萨;

Delete方法需要ID(主键)作为输入

您可以使用以下代码

paisRepo.findById(pais_id).orElseThrow(()->new YourCustomeException(Message)));
如果上述陈述没有失败。。。继续并删除该对象

paisRepo.deleteById(pais_id);

添加更多细节。实体类的实现是什么?@M.Dudek我已经用实体关系编辑了这个问题,所以最好有一个error@IlyaSazonov我用英文错误编辑了这个问题,因为在我删除一对时涉及到“remesa”的原因。不适用于我,我也有同样的错误