TransWikia.com

org.hibernate.QueryException: could not resolve property

Stack Overflow en español Asked by Dani Cantely on December 28, 2021

Al ejecutar la consulta calculoTotalPlazasLicitadasPorProvincia obtengo el ‘org.hibernate.QueryException: could not resolve property: VmProvincia of: es.assda.ged.persistence.model.TGenPlazasLicitadas

No entiendo porqué me dice que no puede resolver la propiedad cuando creo que esta mapeada correctamente.

En BD esta hecha la FK de TGenPlazasLicitadas a VmProvincia con la salvedad de que puede ser nula.

Con @JoinColumn(name = "IDPROVIN", nullable = true) ocurre igual

Mapeo de TGenPlazasLicitadas:

...
private VmProvincia VmProvincia;


@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "IDPROVIN")
public VmProvincia getVmProvincia() {
    return VmProvincia;
}

public void setVmProvincia(VmProvincia vmProvincia) {
    VmProvincia = vmProvincia;
}
...

Consulta HQL:

...
StringBuilder hql = new StringBuilder();
hql.append(" SELECT DISTINCT plalic.idplalic ");
hql.append(" FROM TGenPlazLiciOfer AS plalicofer ");
hql.append(" INNER JOIN plalicofer.TGenPlazasLicitadas AS plalic ");
hql.append(" INNER JOIN plalicofer.TGenPlazasConv AS pconv ");
hql.append(" INNER JOIN pconv.TGenConvenios AS conv ");
hql.append(" INNER JOIN plalic.TGenLicitaciones AS licitaciones ");
hql.append(" INNER JOIN plalic.VmProvincia AS provincia ");
hql.append(" WHERE plalicofer.fechbaja IS NULL ");
hql.append(" AND plalic.fechbaja IS NULL ");
hql.append(" AND pconv.fechbaja IS NULL ");
hql.append(" AND conv.fechbaja IS NULL ");
hql.append(" AND licitaciones.fechbaja IS NULL ");
hql.append(" AND provincia.fechbaja IS NULL ");
hql.append(" AND provincia.idprovin = :idprovin  ");
hql.append(" AND licitaciones.caracter in (:caracter) ");
...

One Answer

En Java Hibernate, el nombre de la propiedad debería ser:

private VmProvincia vmProvincia;

Con la primera letra en minúscula, ya que el objeto empieza en mayúscula.

También modifica el set y cambia el actual por este:

public void setVmProvincia(VmProvincia vmProvincia) {
    this.vmProvincia = vmProvincia;
}

Aquí le dices que la propiedad de la entidad, this.propiedad, obtenga el valor del pasado por parametro.

Por otro lado, veo que las anotaciones las tienes puestas a nivel del get, lo ideal sería tenerlas a nivel de la propiedad.

http://websystique.com/spring/spring-propertysource-value-annotations-example/#:~:text=Spring%20%40PropertySource%20annotations%20is%20mainly,specify%20the%20property%20from%20a%20.

Answered by Ninoecf on December 28, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP