Pessoal, estou tendo o seguinte erro ao tentar listar os registros de uma tabela com chave composta e FK uitilizando o hibernate
Segue o erro
could not set a field value by reflection setter of br.com.technisoft.educacional.bean.GradeDisciplinaPK.idgrade
java.lang.IllegalArgumentException
at sun.reflect.UnsafeObjectFieldAccessorImpl.set(Unknown Source)
at java.lang.reflect.Field.set(Unknown Source)
at org.hibernate.property.DirectPropertyAccessor$DirectSetter.set(DirectPropertyAccessor.java:79)
at org.hibernate.tuple.component.AbstractComponentTuplizer.setPropertyValues(AbstractComponentTuplizer.java:81)
at org.hibernate.tuple.component.PojoComponentTuplizer.setPropertyValues(PojoComponentTuplizer.java:92)
at org.hibernate.type.ComponentType.setPropertyValues(ComponentType.java:358)
at org.hibernate.type.ComponentType.resolve(ComponentType.java:586)
at org.hibernate.type.ComponentType.nullSafeGet(ComponentType.java:275)
at org.hibernate.loader.Loader.getKeyFromResultSet(Loader.java:1088)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:553)
at org.hibernate.loader.Loader.doQuery(Loader.java:689)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
at org.hibernate.loader.Loader.doList(Loader.java:2144)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2028)
at org.hibernate.loader.Loader.list(Loader.java:2023)
at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:95)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1569)
at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
at br.com.technisoft.educacional.dao.hibernate.BaseImplDAO.listAll(BaseImplDAO.java:101)
at br.com.technisoft.educacional.action.GradeDisciplinaAction.show(GradeDisciplinaAction.java:51)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.mentawai.core.InvocationChain.invoke(InvocationChain.java:360)
at org.mentawai.filter.InjectionFilter.filter(InjectionFilter.java:114)
at org.mentawai.core.InvocationChain.invoke(InvocationChain.java:116)
at org.mentawai.filter.VOFilter.filter(VOFilter.java:133)
at org.mentawai.core.InvocationChain.invoke(InvocationChain.java:116)
at org.mentawai.filter.OVFilter.filter(OVFilter.java:97)
at org.mentawai.core.InvocationChain.invoke(InvocationChain.java:116)
at org.mentawai.filter.ExceptionFilter.filter(ExceptionFilter.java:83)
at org.mentawai.core.InvocationChain.invoke(InvocationChain.java:116)
at org.mentawai.filter.DIFilter.filter(DIFilter.java:206)
at org.mentawai.core.InvocationChain.invoke(InvocationChain.java:116)
at org.mentawai.filter.HibernateFilter.filter(HibernateFilter.java:187)
at org.mentawai.core.InvocationChain.invoke(InvocationChain.java:116)
at org.mentawai.filter.IoCFilter.filter(IoCFilter.java:83)
at org.mentawai.core.InvocationChain.invoke(InvocationChain.java:116)
at org.mentawai.core.Controller.invokeAction(Controller.java:653)
at org.mentawai.core.Controller.service(Controller.java:518)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
A função que lista segue abaixo o problema esta acuando nesta linha
public List<T> findByExample(final T example) {
Transaction tx = null;
try {
tx = session.beginTransaction();
final Criteria criteria = session.createCriteria(this.objClass);
criteria.add(Example.create(example).enableLike(MatchMode.ANYWHERE).ignoreCase());
final List<T> result = criteria.list(); // Aqui é aonde acontece o erro
tx.commit();
return result;
} catch (final HibernateException e) {
if (tx != null && tx.isActive())
tx.rollback();
logger.error(e.getMessage(),e.getCause());
}
return null;
}
e as minhas classes são as seguintes
public class GradeDisciplinaPK implements Serializable {
private static final long serialVersionUID = 1L;
@ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE}, targetEntity=GradeCurricular.class )
@JoinColumn(name="idgrade")
private Integer idgrade;
@ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE}, targetEntity=Disciplina.class )
@JoinColumn(name="iddisciplina")
private Integer iddisciplina;
....
@Entity
public class GradeDisciplina implements Serializable {
private static final long serialVersionUID = 1L;
@Id
private GradeDisciplinaPK id;
@Column(nullable = false, length = 2)
private Integer fase;
....
Alguém sabe me dizer o que estou fazendo errado?