HELP com a Interface ResultTransformer do Hibernate

Caros amigos,

Estou com um problema quando uso o metodo setResultTransform. Quando passo como parametro minha classe que implementa ResultTransformer funciona. Porem quando tento usar o ResultTransform do Hibernate atraves da fabrica Transformers.aliasToBean, tenho uma Exception, conforme abaixo:

Assim funciona:

Assim nao funciona:

E gera a seguinte Exception:

Exception in thread "main" org.hibernate.PropertyNotFoundException: Could not find setter for NAME on class uk.co.rangel.model.Employed at org.hibernate.property.ChainedPropertyAccessor.getSetter(ChainedPropertyAccessor.java:68) at org.hibernate.transform.AliasToBeanResultTransformer.transformTuple(AliasToBeanResultTransformer.java:87) at org.hibernate.hql.HolderInstantiator.instantiate(HolderInstantiator.java:92) at org.hibernate.loader.custom.CustomLoader.getResultList(CustomLoader.java:353) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2125) at org.hibernate.loader.Loader.list(Loader.java:2120) at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:312) at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1722) at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:165) at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:175) at uk.co.rangel.hibernate.dao.EmployedDAO.getListEmployedByNativeSQLAndResultTransformer(EmployedDAO.java:87) at uk.co.rangel.hibernate.simulation.employed.GetListEmployedByNativeSQL.main(GetListEmployedByNativeSQL.java:21)

Caro que minha classe Employed tem todos os gets e sets… Grato a todos!

O problema eh que sua query retorna um “name”, mas nao existe “name” em sua entidade “Employed” :slight_smile:

Quando se usa um Transformer generico, ele tenta mapear automaticamente o retorno de sua consulta a um “Java Bean” (ou POJO, ou o nome que vc queira dar). Este bean nao precisa ser uma classe anotada com @Entity, mas ele deve possuir getters/setters para todas as colunas retornadas pela consulta.

Estranho pq minha entidade possui todos os getters and setters.

[code]package uk.co.rangel.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.persistence.Version;

import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;

@Entity
@Table(name=“Employed”)
@Cache(usage=CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Employed {
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE)
private Long id;
private String name;
private String login;
private String password;
@Column(name=“emailaddress”, nullable=false, length=500)
private String email;
@Transient
private Integer age; //won’t be persisted
@Lob
private String description;
private Address address;
@Version
private Integer version;

public Long getId() {
	return id;
}
public void setId(Long id) {
	this.id = id;
}
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public String getLogin() {
	return login;
}
public void setLogin(String login) {
	this.login = login;
}
public String getPassword() {
	return password;
}
public void setPassword(String password) {
	this.password = password;
}
public String getEmail() {
	return email;
}
public void setEmail(String email) {
	this.email = email;
}
public Integer getAge() {
	return age;
}
public void setAge(Integer age) {
	this.age = age;
}
public String getDescription() {
	return description;
}
public void setDescription(String description) {
	this.description = description;
}
public Address getAddress() {
	return address;
}
public void setAddress(Address address) {
	this.address = address;
}
public void setVersion(Integer version) {
	this.version = version;
}
public Integer getVersion() {
	return version;
}

}[/code]

Desculpe, nao tinha reparado que vc ja tinha falado que todos os getters/setters estavam corretos :slight_smile:
Voce pode passar o codigo do transformer que funciona e o codigo que monta a “sqlQuery” ?