ManyToOne em objeto da propria classe [Resolvido]

Boa tarde amigos.
Pesquisei aqui no forúm e não encontrei um caso como este.
Se alguem puder me ajudar…

Meu problema é simples de entender.

@Entity
public class Grupo {

	@Id
	@GeneratedValue
	private Long id;
	
	private String nome;
	
	@ManyToOne
	@JoinColumn(name="idGrupoPai")
	private Grupo grupoPai = new Grupo();
        ...

Tenho uma clase Grupo e um objeto grupoPai do tipo Grupo.
Quero esse idGrupoPai, porque um Grupo pertence a um outro Grupo.

E o Tomcat esta retornando um erro, creio que seja algum problema de ser um Objeto da mesma classe, porque fiz um teste colocando um objeto de outra classe e o erro não acontece.

O erro:

root cause

org.hibernate.InstantiationException: could not instantiate test objectbr.com.fusionnet.modelo.Grupo
	org.hibernate.engine.UnsavedValueFactory.instantiate(UnsavedValueFactory.java:48)
	org.hibernate.engine.UnsavedValueFactory.getUnsavedIdentifierValue(UnsavedValueFactory.java:67)
	org.hibernate.tuple.PropertyFactory.buildIdentifierProperty(PropertyFactory.java:67)
	org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:136)
	org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:475)
	org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:133)
	org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:84)
	org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:295)
	org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1385)
	org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:954)
	org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:883)
	org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:56)
	javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48)
	javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)
	br.com.fusionnet.dao.JPAUtil.<clinit>(JPAUtil.java:8)
	br.com.fusionnet.dao.DAO.listaTodos(DAO.java:52)
	br.com.fusionnet.mb.UfBean.getUfs(UfBean.java:28)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:597)
	javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
	javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
	com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:71)
	org.apache.el.parser.AstValue.getValue(AstValue.java:123)
	org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
	com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:106)
	javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:190)
	javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:178)
	javax.faces.component.UISelectItems.getValue(UISelectItems.java:125)
	com.sun.faces.renderkit.SelectItemsIterator.initializeItems(SelectItemsIterator.java:198)
	com.sun.faces.renderkit.SelectItemsIterator.hasNext(SelectItemsIterator.java:131)
	com.sun.faces.renderkit.html_basic.MenuRenderer.renderOptions(MenuRenderer.java:758)
	com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:840)
	com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:294)
	javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:879)
	com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:308)
	com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:181)
	com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:125)
	javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:1643)
	javax.faces.render.Renderer.encodeChildren(Renderer.java:164)
	javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:1643)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:1646)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:1646)
	com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:389)
	com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:127)
	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:117)
	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:135)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:309)

root cause

java.lang.reflect.InvocationTargetException
	sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	org.hibernate.engine.UnsavedValueFactory.instantiate(UnsavedValueFactory.java:45)
	org.hibernate.engine.UnsavedValueFactory.getUnsavedIdentifierValue(UnsavedValueFactory.java:67)
	org.hibernate.tuple.PropertyFactory.buildIdentifierProperty(PropertyFactory.java:67)
	org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:136)
	org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:475)
	org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:133)
	org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:84)
	org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:295)
	org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1385)
	org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:954)
	org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:883)
	org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:56)
	javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48)
	javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)
	br.com.fusionnet.dao.JPAUtil.<clinit>(JPAUtil.java:8)
	br.com.fusionnet.dao.DAO.listaTodos(DAO.java:52)
	br.com.fusionnet.mb.UfBean.getUfs(UfBean.java:28)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:597)
	javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
	javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
	com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:71)
	org.apache.el.parser.AstValue.getValue(AstValue.java:123)
	org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
	com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:106)
	javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:190)
	javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:178)
	javax.faces.component.UISelectItems.getValue(UISelectItems.java:125)
	com.sun.faces.renderkit.SelectItemsIterator.initializeItems(SelectItemsIterator.java:198)
	com.sun.faces.renderkit.SelectItemsIterator.hasNext(SelectItemsIterator.java:131)
	com.sun.faces.renderkit.html_basic.MenuRenderer.renderOptions(MenuRenderer.java:758)
	com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:840)
	com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:294)
	javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:879)
	com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:308)
	com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:181)
	com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:125)
	javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:1643)
	javax.faces.render.Renderer.encodeChildren(Renderer.java:164)
	javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:1643)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:1646)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:1646)
	com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:389)
	com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:127)
	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:117)
	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:135)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:309)

Tente assim:

  @ManyToOne  
     private GrupoPai grupoPai;

Abraço!

Opa Guevara … Valeu … eu tava comendo bola aqui. Tirei o new Grupo e funcionou .
Obrigado.

: D