Provider Oracle X Hibernate ....da conflito com JPA ...Duvida?

Olá não entendo porque quando uso exemploJPA1 do aruqivo persistence.xml

da o erro abaixo não sei porque ???

Pois queria usar provider do Hibernate será que da conflito com JPA ???

COm provider do TopLink Oracle Funcionou ???

estou fazendo esse teste de um main e não tenho nenhum servidor aplicação foi feito
um projeto JPA no eclipse …

se alguém puder me ajudar agradeceria…

abs

Exception in thread "main" java.lang.NullPointerException
	at oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.createEntityManagerFactory(EntityManagerFactoryProvider.java:120)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:52)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34)
	at br.com.exemplojpa.persistencia.UsuarioDAO.<init>(UsuarioDAO.java:29)
	at br.com.exemplojpa.negocio.UsuarioBusiness.inserirUsuario(UsuarioBusiness.java:22)
	at br.com.exemplojpa.teste.TesteExemploJPA.main(TesteExemploJPA.java:39)
----


-----



  
  <persistence-unit name="exemploJPA1" transaction-type="RESOURCE_LOCAL">
  <provider>org.hibernate.ejb.HibernatePersistence</provider>
   <class>br.com.exemplojpa.modelo.Usuario</class>
    <class>br.com.exemplojpa.modelo.Centro</class>
    <class>br.com.exemplojpa.modelo.Universidade</class>
    <properties>
      <property name="hibernate.archive.autodetection" value="class"/>
      <property name="hibernate.connection.driver_class"  value="com.mysql.jdbc.Driver" />
      <property name="hibernate.connection.url"  value="jdbc:mysql://localhost:3306/exemplojpa" />
      <property name="hibernate.connection.username" value="root"/>
      <property name="hibernate.connection.password" value="root"/>
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
      <property name="hibernate.show_sql" value="true" />
      <property name="hibernate.hbm2ddl.auto" value="create-tables" />
      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.OSCacheProvider"/>  
    </properties>
  </persistence-unit>
  
    <persistence-unit name="exemploJPA" transaction-type="RESOURCE_LOCAL">
    <provider>oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider</provider>
    <class>br.com.exemplojpa.modelo.Usuario</class>
    <class>br.com.exemplojpa.modelo.Centro</class>
    <class>br.com.exemplojpa.modelo.Universidade</class>
    <properties>
      <property name="toplink.logging.level" value="INFO"/>
      <property name="toplink.jdbc.url" value="jdbc:mysql://127.0.0.1:3306/exemplojpa"/>
      <property name="toplink.jdbc.driver" value="com.mysql.jdbc.Driver"/>
      <property name="toplink.jdbc.user" value="root"/>
      <property name="toplink.jdbc.password" value="root"/>
      <property name="toplink.show_sql" value="true" />
      <!-- property name="toplink.ddl-generation" value="create-tables"/--> 
    </properties>
  </persistence-unit>
</persistence>

---

public class UsuarioDAO {

	private EntityManagerFactory factory = null;

	private EntityManager manager = null;

	public UsuarioDAO() {
		factory = Persistence.createEntityManagerFactory("exemploJPA1");
		manager = factory.createEntityManager();
	}

	/**
	 * Inserindo um usuário
	 * 
	 * @param usuario
	 */
	public void inserirUsuario(Usuario usuario) {

		EntityTransaction transaction = manager.getTransaction();

		try {
			transaction.begin();

			manager.persist(usuario);

			transaction.commit();

		} catch (Exception e) {
			transaction.rollback();

			System.err.println("Erro: " + e.getMessage());

		} finally {
			manager.close();
		}

	}

	/**
	 * Pesquisar um usuário
	 * 
	 * @param usuario
	 */
	public Usuario pesquisarUsuario(Integer id, Usuario usuario) {
		EntityTransaction transaction = manager.getTransaction();

		Usuario retorno = null;

		try {

			transaction.begin();

			retorno = (Usuario) manager.find(Usuario.class, id);
			
		} catch (Exception e) {
			transaction.rollback();

			System.err.println("Erro: " + e.getMessage());
		} finally {
			manager.close();
		}

		return retorno;

	}

	public List listaTodosUsuario(){
		EntityTransaction transaction = manager.getTransaction();
		
		List lista = new ArrayList(0);
		try{
			
			//Query q = manager.createQuery("select u.id ,u.login ,u.password,u.nome from USUARIO u where u.id > 1");
			
			//lista = q.getResultList();
			
			lista  = manager.createQuery("select id, login,senha,nome from usuario where id > ?1 ")
			.setParameter(1, 1)
			.getResultList(); 
			
		}catch(Exception e){
			System.out.println("Erro ="+e);
		}
		
		return lista;
	}
}
---
public class TesteExemploJPA {

	public static void main(String[] args) {
		/*
		 * Criando o objeto usuário
		 */
		Usuario usuario = new Usuario();
		
		usuario.setLogin("mary");
		usuario.setPassword("mary");
		usuario.setNome("lock");
		
		
		/*
		 * Instanciando a classe de negócio
		 */
		UsuarioBusiness usuarioBusiness = new UsuarioBusiness();

		/*
		 * Inserindo um usuário no banco
		 */
		usuarioBusiness.inserirUsuario(usuario);

		/*
		 * Pesquisando o usuário inserido no banco
		 */

		
		
		Usuario usuarioBanco = new Usuario();

		usuarioBanco = usuarioBusiness.pesquisarUsuario(usuario);

		/*
		 * Mostrando o resultado da consulta no banco
		 */
		System.out.println();
		System.out.println("         Exemplo JPA         ");
		System.out.println("Id: " + usuarioBanco.getId());
		System.out.println("Login: " + usuarioBanco.getLogin());
		System.out.println("Senha: " + usuarioBanco.getPassword());
		System.out.println("Nome: " + usuarioBanco.getNome());
		
		System.out.println("-----------------------------------------");
		System.out.println("Lista Todos Usuários");
		List lista = usuarioBusiness.listaTodosUsuario();
		
		for (Iterator iterator = lista.iterator(); iterator.hasNext();) {
			Usuario usuarios = (Usuario) iterator.next();
			System.out.println("id ="+usuarios.getId());
			System.out.println("login ="+usuarios.getLogin());
			System.out.println("senha ="+usuarios.getPassword());
			System.out.println("nome ="+usuarios.getNome());
			System.out.println("---------------------------------");
		}

	}

}
---
public class UsuarioBusiness {

	UsuarioDAO usuarioDAO = null;

	/**
	 * Inserir usuário
	 */
	public void inserirUsuario(Usuario usuario) {

		usuarioDAO = new UsuarioDAO();

		usuarioDAO.inserirUsuario(usuario);

	}

	/**
	 * Pesquisar usuário
	 */
	public Usuario pesquisarUsuario(Usuario usuario) {

		usuarioDAO = new UsuarioDAO();

		Usuario retorno = new Usuario();

		retorno = usuarioDAO.pesquisarUsuario(usuario.getId(), usuario);

		return retorno;

	}
	
	/**
	 * Pesquisar usuário
	 */
	public List listaTodosUsuario() {

		usuarioDAO = new UsuarioDAO();

		List retorno = usuarioDAO.listaTodosUsuario();

		return retorno;

	}
	

}

--
--
---