Erro hibernate: Use of @OneToMany or @ManyToMany targeting an unmapped class

1 resposta
Patricia_HelloWorld

Meus caros,

estou aprendendo a usar o hibernate, e meu projeto tá dando esse erro:

Exception in thread "main" org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: negocio.Pav.combustiveis[negocio.Combustivel]
at BLABLABLA

O que eu não entendo é que, até onde eu sei, uma classe enum não precisa ser mapeada. Aí eu me pergunto: eu não posso ter uma coleção de enums? e se posso: como é que se identifica isso pro hibernate??

Obs: Pav é um "Pedido de Abastecimento de Veículo", que tem um veículo, um motorista e uma coleção de combustíveis(para carros flex), entre outras informações.

@Entity
public class Pav {
	
	@OneToOne
	Posto posto;
	@OneToOne
	Pessoa motorista;
	@OneToMany()
	@Cascade(CascadeType.SAVE_UPDATE)
	//Combustível é uma enum. tem q botar @Enumerated?
	private Set<Combustivel> combustiveis = new HashSet<Combustivel>();
	@OneToOne
	Veiculo veiculo;
	@OneToOne
	CentroDeCusto cc;
	@OneToMany()
	@Cascade(CascadeType.SAVE_UPDATE)
	private Set<Lubrificante> lubrificantes = new HashSet<Lubrificante>();
	Date dtAbastecimento;
	int quilometragemVeiculo;
	int quantCombustivel;
	double valorUnitarioCombustivel;
	double valorTotalAbastecimento;
	double quantLubrificante;
	double valorUnitarioLubrificante;
	double valorTotalLubrificante;
	double totalGeral;

	@Id
	int idPav;
                //construtor e métodos
	
}
public enum Combustivel {
	
	ALCOOL() {
	    public String extenso() {
	        return "Alcool";
	    }
    }, 
	    
	BIODIESEL() {
    	public String extenso() {
	        return "Biodiesel";
	    }
	}, 
	    
	DIESEL() {
	    public String extenso() {
	        return "Diesel";
	    }
	}, 
	    
	GAS() {
	     public String extenso() {
	        return "Gás";
	     }
	}, 
	GASOLINA() {
	     public String extenso() {
	        return "Gasolina";
	     }
	};    
	        
	     

	public String extenso() {
			return this.extenso();
	}
}
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
	<session-factory>
		<mapping class="negocio.Pessoa" />
		<mapping class="negocio.Motorista" />
		<mapping class="negocio.Funcionario" />
		<mapping class="negocio.Veiculo" />
		<mapping class="negocio.CentroDeCusto" />
		<mapping class="negocio.Posto" />
		<mapping class="negocio.Pav" />
		<mapping class="negocio.Lubrificante" />
	</session-factory>
</hibernate-configuration>

1 Resposta

rodrigo_corinthians

Tenta colocar @Transient no lugar dessas annotations(@OneToMany, @Cascade)

Criado 10 de dezembro de 2007
Ultima resposta 11 de dez. de 2007
Respostas 1
Participantes 2