Erro: @OneToOne or @ManyToOne on PrecoMetodo.preco references an unknown en

Pessoal,

Criei uma classe nova PRECOMETODO e

Estou rodando o Jboss e esta dando o erro abaixo :

2012-10-26 08:04:55,840 DEBUG [org.jboss.ejb3.ServiceDelegateWrapper] Starting failed persistence.units:ear=lims.ear,unitName=lims-pu
org.hibernate.AnnotationException: @OneToOne or @ManyToOne on br.com.cqa.lims.orcamento.PrecoMetodo.preco references an unknown entity: br.com.cqa.lims.financeiro.Dinheiro
at org.hibernate.cfg.FkSecondPass.doSecondPass(FkSecondPass.java:56)
at org.hibernate.cfg.AnnotationConfiguration.processFkSecondPassInOrder(AnnotationConfiguration.java:428)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:286)
at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1115)
at org.hibernate.ejb.Ejb3Configuration.buildMappings(Ejb3Configuration.java:1233)
at org.hibernate.ejb.EventListenerConfigurator.configure(EventListenerConfigurator.java:154)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:869)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:407)
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:126)
at org.jboss.ejb3.entity.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:246)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.ejb3.ServiceDelegateWrapper.startService(ServiceDelegateWrapper.java:103)
at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)

Segue minha classe

@Entity
public class PrecoMetodo extends Entidade{


	private static final long serialVersionUID = -4715774435380827257L;

//	@Id
//	private Integer id;
	
	private int grupo;
	@ManyToOne
	private Metodo metodo;
	@ManyToOne
	private Especificacao especificacao;
	@ManyToOne
	private Dinheiro preco;

	 public PrecoMetodo(){
			
		}
		
		
		
		public PrecoMetodo(BigDecimal id, int grupo, Metodo metodo,Especificacao especificacao, Dinheiro preco) {
			super();
			this.grupo = grupo;
			this.metodo = metodo;
			this.especificacao = especificacao;
			this.preco = preco;
		}
	
	public Integer getGrupo() {
		return grupo;
	}
	public void setGrupo(Integer Grupo) {
		this.grupo = grupo;
	}
	
	public Metodo getMetodo() {
		return metodo;
	}

	public void setMetodo(Metodo metodo) {
		this.metodo = metodo;
	}
	
	
	public Especificacao getEspecificacao() {
		return especificacao;
	}

	public void setEspecificacao(Especificacao Especificacao) {
		this.especificacao = especificacao;
	}	
	
	public Dinheiro getPreco() {
		return preco;
	}

	public void setPreco(Dinheiro preco) {
		this.preco = preco;
	}
	
	

	
	
	//Varre a base procurando pelo Grupo_id deste metodo na especificacao.
		//Retorna o id se o encontrar, ou zero caso contrario.
		public int getGrupoIdDesteMetodoNaEspec(Especificacao especificacao, Metodo metodo){
			
			OrcamentoServiceBean osb = new OrcamentoServiceBean();
			//List<PrecoMetodo> listaDaEspecificacao = this.listar(especificacao);	

			List<PrecoMetodo> listaDaEspecificacao = osb.buscarPrecoMetodoEspecificacao(especificacao);
			
			for(PrecoMetodo precoMetodo : listaDaEspecificacao){
				
			/*	if (precoMetodo.getMetodo() == metodo.getId()){
					return precoMetodo.getGrupo();
				*/
				return precoMetodo.getGrupo();
			//}
				
			}			
			return 0;
		}

	
}

e sua classe dinheiro está anotada e mapeada corretamente?

entao, é um sistema novo, estou conhecendo o sistema agora …tentei dar uma olhada no persistence.xml, mas lá nao existe nenhuma classe registrada…existe outro lugar que eu possa ver ?? pq acho que esta faltando registrar minha classe precometodo

[quote=evandro_araujo]entao, é um sistema novo, estou conhecendo o sistema agora …tentei dar uma olhada no persistence.xml, mas lá nao existe nenhuma classe registrada…existe outro lugar que eu possa ver ?? pq acho que esta faltando registrar minha classe precometodo[/quote] Veja as anotações das outras classes que aparecem no relacionamento.

http://uaihebert.com/?p=1622

Entenda o conceito de Entity.

Pessoal,

Criei uma classe simples :

@Entity
public class PrecoMetodo {


	private static final long serialVersionUID = -4715774435380827257L;
	
	private int grupo;

	
	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	
	public Integer getGrupo() {
		return grupo;
	}
	public void setGrupo(Integer Grupo) {
		this.grupo = grupo;
	}

OBS.; ESTA É UMA CLASSE NOVA
Não entendo pq esta dando o erro abaixo :

2012-10-26 15:03:25,399 DEBUG [org.hibernate.cfg.annotations.CollectionBinder] Collection role: br.com.cqa.lims.faturamento.Faturamento.itensFaturamento
2012-10-26 15:03:25,399 DEBUG [org.hibernate.cfg.annotations.PropertyBinder] Building property itensFaturamento
2012-10-26 15:03:25,399 DEBUG [org.hibernate.cfg.AnnotationConfiguration] processing manytoone fk mappings
2012-10-26 15:03:25,416 DEBUG [org.jboss.ejb3.ServiceDelegateWrapper] Starting failed persistence.units:ear=lims.ear,unitName=lims-pu
org.hibernate.AnnotationException: @OneToOne or @ManyToOne on br.com.cqa.lims.orcamento.PrecoMetodo.preco references an unknown entity: br.com.cqa.lims.financeiro.Dinheiro
at org.hibernate.cfg.FkSecondPass.doSecondPass(FkSecondPass.java:56)
at org.hibernate.cfg.AnnotationConfiguration.processFkSecondPassInOrder(AnnotationConfiguration.java:428)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:286)
at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1115)
at org.hibernate.ejb.Ejb3Configuration.buildMappings(Ejb3Configuration.java:1233)
at org.hibernate.ejb.EventListenerConfigurator.configure(EventListenerConfigurator.java:154)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:869)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:407)
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:126)

Você leu a mensagem de erro?[quote]2012-10-26 15:03:25,416 DEBUG [org.jboss.ejb3.ServiceDelegateWrapper] Starting failed persistence.units:ear=lims.ear,unitName=lims-pu
org.hibernate.AnnotationException: @OneToOne or @ManyToOne on br.com.cqa.lims.orcamento.PrecoMetodo.preco references an unknown entity: br.com.cqa.lims.financeiro.Dinheiro [/quote]Traduza ao pé da letra, o que você entendeu?

esta dizendo que nao esta encontrando a entidade br.com.cqa.lims.financeiro.Dinheiro, mas na minha classe PrecoMetodo nao estou mencionando ela em nenhum lugar …isso que nao estou entendo.

[quote=evandro_araujo]esta dizendo que nao esta encontrando a entidade br.com.cqa.lims.financeiro.Dinheiro, mas na minha classe PrecoMetodo nao estou mencionando ela em nenhum lugar …isso que nao estou entendo. [/quote]Na verdade, ela diz que é uma entidade desconhecida, ou seja, não foi definida como entidade, ou como relacionamento.

Na classe PrecoMetodo.preco não existe preço? Se não como atributo, não tem um getPreco()?

Estou usando a tecnologia MAVEN, o processo que eu faço…eu executo a linha do comando no prompt: mvn -Dprod install para gerar o EAR e depois executo o JBOSS…
O problema é quando executo o JBOSS …lembrando que essa é uma classe nova que criei .

Obrigado pela ajuda .

minha classe :

import javax.persistence.Entity;

@Entity

public class PrecoMetodo {


	private static final long serialVersionUID = -4715774435380827257L;
	private int grupo;
	
	public Integer getGrupo() {
		return grupo;
	}
	public void setGrupo(Integer Grupo) {
		this.grupo = grupo;
	}
	
}

Toda entity deve ter um campo que seja o Id anotado com @Id. Sua entidade nova não tem.

Esta muito estranho …eu apaguei propositalmente a minha classe PrecoMetodo, e teoricamente era para nao ter mais o erro …ai que fui surpreendido…rodei o maven e logo em seguida rodei o jboss…ai que veio o erro abaixo…da a impressao que ele deixou algum sujeira em algum lugar …ai pergunto …aonde que ele pode ter deixar essa sugeira ???

2012-10-26 16:03:03,493 DEBUG [org.jboss.ejb3.ServiceDelegateWrapper] Starting failed persistence.units:ear=lims.ear,unitName=lims-pu
org.hibernate.AnnotationException: @OneToOne or @ManyToOne on br.com.cqa.lims.orcamento.PrecoMetodo.preco references an unknown entity: br.com.cqa.lims.financeiro.Dinheiro
at org.hibernate.cfg.FkSecondPass.doSecondPass(FkSecondPass.java:56)
at org.hibernate.cfg.AnnotationConfiguration.processFkSecondPassInOrder(AnnotationConfiguration.java:428)