JPA + Dúvida de iniciante

Galera, estou fazendo um “HelloWorld” aqui com JPA para testar usando o toplink da Oracle. Pq quando eu crio um EntityManager eu vou lá no banco do fireBird e vejo que foi criado 7 instancias de usuario “SYSDBA” no banco??? É normal ou tem alguma configuração a ser feito para criar só um???

Obrigado desde já a todos.

O normal é inserir apenas uma única vez. No seu código tem algum laço? Tente debugar para ver o erro.

Veja um exemplo de JPA no meu blog.

minha classe que abre a conexão:

public class JPA {
	
	public static EntityManager entityManager;
	
	static{
		entityManager = Persistence.createEntityManagerFactory("persistence").createEntityManager();
	}
	
	public static void closeEntityManager() {
		if(entityManager != null)
			entityManager.close();
	}
	
}

Tá certo não está?

Testa ai:

		Object o = null;
		//cria seu objeto que deve estar marcado como @Entity
		//seta os atributos dele
		//altera o nome da PU de teste para o que vc definiu no persistence.xml	
		EntityManager em = Persistence.createEntityManagerFactory("teste")
				.createEntityManager();
		EntityTransaction transaction = null;
		try {
			transaction = em.getTransaction();
			transaction.begin();
			em.persist(o);
			transaction.commit();
		} catch (Exception e) {
			if (transaction != null)
				transaction.rollback();
		} finally {
			em.close();
		}

Se der certo, procura no seu código algum laço ou algo do tipo, se ainda assim gravar 7 registros, posta ai suas classes (o @Entity e o persistence.xml) que ai eu faço um teste aqui.

ps: deixa o parâmetro show_sql como true para você poder ver os sql’s executados. Caso esteja utilizando o hibernate, coloca isso como property do persistence.xml:

            <property name="hibernate.show_sql" value="true"/>

flw!

não, não está gravando 7 registros. É como se tivesse abrindo 7 conexões entende. Tipo antes de eu iniciar a aplicação vou no banco e vejo q existe um usuario conectado só, ai eu inicio a minha aplicação e aparece + 7 usuarios conectados.