olá galera , estou com erro ao rodar uma aplicação não estou conseguindo entender o porque deste erro
segue o erro:
Exception in thread “main” java.lang.ExceptionInInitializerError
at BasicControlOs.ctrl.VeiculoController.(VeiculoController.java:19)
at BasicControlOs.testeDAO.NewClass.main(NewClass.java:20)
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: BasicControlOsPU] Unable to build Hibernate SessionFactory
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:1225)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.access$600(EntityManagerFactoryBuilderImpl.java:119)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:853)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:843)
at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:399)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:842)
at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:73)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:54)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
at BasicControlOs.dao.GenericDAO.(GenericDAO.java:25)
… 2 more
Caused by: org.hibernate.AnnotationException: Illegal attempt to map a non collection as a @OneToMany, @ManyToMany or @CollectionOfElements: BasicControlOs.model.Veiculo.ordemServicoList
at org.hibernate.cfg.annotations.CollectionBinder.getCollectionBinder(CollectionBinder.java:330)
at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1919)
at org.hibernate.cfg.AnnotationBinder.processIdPropertiesIfNotAlready(AnnotationBinder.java:963)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:796)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3790)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3744)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1410)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1844)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
… 10 more
Classe VeiculoController
public class VeiculoController {
private VeiculoDAO veiculoDAO;
private ObservableList<Veiculo> listaVeiculos;
public VeiculoController() {
veiculoDAO = new VeiculoDAO();
}
public void criarVeiculo(Veiculo veiculo) {
try{
veiculoDAO.beginTransaction();
veiculoDAO.save(veiculo);
veiculoDAO.commitAndCloseTransaction();
}catch(Exception e) {
e.printStackTrace();
}
}
public void editarVeiculo(Veiculo veiculo) {
veiculoDAO.beginTransaction();
veiculoDAO.update(veiculo);
veiculoDAO.commitAndCloseTransaction();
}
public void removerVeiculo(Veiculo veiculo) {
}
public ObservableList<Veiculo> listaVeiculo() {
veiculoDAO.beginTransaction();
listaVeiculos = veiculoDAO.findAll();
veiculoDAO.closeTransaction();
return listaVeiculos;
}
}
Classe Veiculo
@Entity
@Table(name = “Veiculo”)
@XmlRootElement
@NamedQueries({
@NamedQuery(name = “Veiculo.findAll”, query = “SELECT v FROM Veiculo v”)})
public class Veiculo implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = “id_veiculo”)
private IntegerProperty idVeiculo;
@Basic(optional = false)
@Column(name = “modelo_veiculo”)
private StringProperty modeloVeiculo;
@Basic(optional = false)
@Column(name = “marca_veiculo”)
private StringProperty marcaVeiculo;
@Basic(optional = false)
@Column(name = “ano_veiculo”)
private IntegerProperty anoVeiculo;
@Basic(optional = false)
@Column(name = “cor_veiculo”)
private StringProperty corVeiculo;
@Basic(optional = false)
@Column(name = “km_veiculo”)
private DoubleProperty kmVeiculo;
@Basic(optional = false)
@Column(name = “placa_veiculo”)
private StringProperty placaVeiculo;
@Basic(optional = false)
@Column(name = “uf_veiculo”)
private StringProperty ufVeiculo;
@Basic(optional = false)
@Column(name = “nome_dono_veiculo”)
private StringProperty nomeDonoVeiculo;
@Basic(optional = false)
@Column(name = “cpf_dono_veiculo”)
private StringProperty cpfDonoVeiculo;
@OneToMany(cascade = CascadeType.ALL, mappedBy = “idVeiculo”)
private ObjectProperty ordemServicoList;
public Veiculo() {
}
public Veiculo(IntegerProperty idVeiculo) {
this.idVeiculo = idVeiculo;
}
public Veiculo(Integer idVeiculo, String modeloVeiculo, String marcaVeiculo,Integer anoVeiculo,
String corVeiculo, Double kmVeiculo,String placaVeiculo, String ufVeiculo,
String nomeDonoVeiculo,String cpfDonoVeiculo) {
this.idVeiculo = new SimpleIntegerProperty(idVeiculo);
this.modeloVeiculo = new SimpleStringProperty(modeloVeiculo);
this.marcaVeiculo = new SimpleStringProperty(marcaVeiculo);
this.anoVeiculo = new SimpleIntegerProperty(anoVeiculo);
this.corVeiculo = new SimpleStringProperty(corVeiculo);
this.kmVeiculo = new SimpleDoubleProperty(kmVeiculo);
this.placaVeiculo = new SimpleStringProperty(placaVeiculo);
this.ufVeiculo = new SimpleStringProperty(ufVeiculo);
this.nomeDonoVeiculo = new SimpleStringProperty(nomeDonoVeiculo);
this.cpfDonoVeiculo = new SimpleStringProperty(cpfDonoVeiculo);
}
public IntegerProperty getIdVeiculo() {
return idVeiculo;
}
public void setIdVeiculo(Integer idVeiculo) {
this.idVeiculo.set(idVeiculo);
}
public StringProperty getModeloVeiculo() {
return modeloVeiculo;
}
public void setModeloVeiculo(String modeloVeiculo) {
this.modeloVeiculo.set(modeloVeiculo);
}
public StringProperty getMarcaVeiculo() {
return marcaVeiculo;
}
public void setMarcaVeiculo(String marcaVeiculo) {
this.marcaVeiculo.set(marcaVeiculo);
}
public IntegerProperty getAnoVeiculo() {
return anoVeiculo;
}
public void setAnoVeiculo(int anoVeiculo) {
this.anoVeiculo.set(anoVeiculo);
}
public StringProperty getCorVeiculo() {
return corVeiculo;
}
public void setCorVeiculo(String corVeiculo) {
this.corVeiculo.set(corVeiculo);
}
public DoubleProperty getKmVeiculo() {
return kmVeiculo;
}
public void setKmVeiculo(double kmVeiculo) {
this.kmVeiculo.set(kmVeiculo);
}
public StringProperty getPlacaVeiculo() {
return placaVeiculo;
}
public void setPlacaVeiculo(String placaVeiculo) {
this.placaVeiculo.set(placaVeiculo);
}
public StringProperty getUfVeiculo() {
return ufVeiculo;
}
public void setUfVeiculo(String ufVeiculo) {
this.ufVeiculo.set(ufVeiculo);
}
public StringProperty getNomeDonoVeiculo() {
return nomeDonoVeiculo;
}
public void setNomeDonoVeiculo(String nomeDonoVeiculo) {
this.nomeDonoVeiculo.set(nomeDonoVeiculo);
}
public StringProperty getCpfDonoVeiculo() {
return cpfDonoVeiculo;
}
public void setCpfDonoVeiculo(String cpfDonoVeiculo) {
this.cpfDonoVeiculo.set(cpfDonoVeiculo);
}
@XmlTransient
public ObjectProperty<OrdemServico> getOrdemServicoList() {
return ordemServicoList;
}
public void setOrdemServicoList(OrdemServico ordemServicoList) {
this.ordemServicoList.set(ordemServicoList);
}
VeiculoDAO
public class VeiculoDAO extends GenericDAO{
public VeiculoDAO() {
super(Veiculo.class);
}
}
GenericDAO
public class GenericDAO implements Serializable {
private static final EntityManagerFactory emf = Persistence.createEntityManagerFactory("BasicControlOsPU");
private EntityManager em;
private final Class<T> entityClass;
public void beginTransaction(){
em = emf.createEntityManager();
em.getTransaction().begin();
}
public void commit() {
em.getTransaction().commit();
}
public void closeTransaction() {
em.close();
}
public void rollback() {
em.getTransaction().rollback();
}
public void commitAndCloseTransaction() {
commit();
closeTransaction();
}
public void flush() {
em.flush();
}
public void joinTransaction() {
em = emf.createEntityManager();
em.joinTransaction();
}
public GenericDAO(Class<T> entityClass) {
this.entityClass = entityClass;
}
public void save(T entity) {
em.persist(entity);
}
protected void delete(Object id , Class<T> classe) {
T entityToBeRemoved = em.getReference(entityClass, id);
em.remove(entityToBeRemoved);
}
public T update(T entity) {
return em.merge(entity);
}
public T find(int entityId) {
return em.find(entityClass, entityId);
}
public T findReferenceOnly(int entityId) {
return em.getReference(entityClass , entityId);
}
public ObservableList<T> findAll() {
CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
cq.select(cq.from(entityClass));
return (ObservableList<T>) em.createQuery(cq).getResultList();
}
}