A primeira consulta faz o SQL corretamente
SELECT COUNT(plc.id) as total FROM br.com.netsoft.model.notafiscalservico.PessoaLiberarCancelarNFSeEntity plc LEFT OUTER JOIN plc.pessoa pesc
A segunda não
SELECT COUNT(plc.id) as total FROM br.com.netsoft.model.notafiscalservico.PessoaLiberarCancelarNFSeEntity plc LEFT OUTER JOIN FETCH plc.pessoa pesc
A segunda ocorre este erro.
Caused by: org.hibernate.QueryException: query specified join fetching, but the owner of the fetched association was not present in the select list [FromElement{explicit,not a collection join,fetch join,fetch non-lazy properties,classAlias=pesc,role=br.com.netsoft.model.notafiscalservico.PessoaLiberarCancelarNFSeEntity.pessoa,tableName=PESSOAS.TB_PESSOA,tableAlias=pessoaenti1_,origin=NFSE.TB_NOTA_FISCAL_LIBERAR_CANCELAR pessoalibe0_,columns={pessoalibe0_.FK_PESSOA ,className=br.com.netsoft.model.todos.PessoaEntity}}]
at org.hibernate.hql.internal.ast.tree.SelectClause.initializeExplicitSelectClause(SelectClause.java:227)
at org.hibernate.hql.internal.ast.HqlSqlWalker.useSelectClause(HqlSqlWalker.java:937)
at org.hibernate.hql.internal.ast.HqlSqlWalker.processQuery(HqlSqlWalker.java:705)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:665)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:301)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:249)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:278)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:206)
... 113 more
Modelos:
private static final long serialVersionUID = -6995479117848459720L;
private PessoaEntity pessoa;
private String motivo;
@Id
@Column(name = "ID_NOTA_FISCAL_LIBERAR_CANCELAR")
@SequenceGenerator(name = "NFSE.SQ_NOTA_FISCAL_LIBERAR_CANCELAR", sequenceName = "NFSE.SQ_NOTA_FISCAL_LIBERAR_CANCELAR", allocationSize = 1)
@GeneratedValue(generator = "NFSE.SQ_NOTA_FISCAL_LIBERAR_CANCELAR", strategy = GenerationType.SEQUENCE)
public Long getId() {
return super.getId();
}
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "FK_PESSOA", nullable = false)
@JsonBackReference
public PessoaEntity getPessoa() {
return pessoa;
}
public void setPessoa(PessoaEntity pessoa) {
this.pessoa = pessoa;
}
@Column(name = "DS_MOTIVO", length = 4000, nullable = false)
public String getMotivo() {
return motivo;
}
public void setMotivo(String motivo) {
this.motivo = motivo;
}
O que pode ser ?: