Pessoal desenvolvo em java para desktop, estou utilizando toplink como camada de persistencia… porem estou com um problema… cada vez q eu conecto meu programa principal no banco… ele me da como se tivesse 46 usuarios no banco. logo se eu conectar 3 clientes no mesmo banco estora o numero de usuario e nao consigo
eu tenho a seguinte classe de conexao
[code]
public class ConexaoNotas {
private static ConexaoNotas instancia;
private static EntityManagerFactory emf;
private static final String NOMEPU = "NotasPU";
public static EntityManager SESSION;
public static synchronized void conectar(){
Map propertiesMap = new HashMap();
try {
String ipServidor = VerificaIpConexao.getIpServidor();
propertiesMap.put(TopLinkProperties.JDBC_URL, "jdbc:postgresql://" + ipServidor + ":5432/db_dnaso");
emf = Persistence.createEntityManagerFactory(NOMEPU, propertiesMap);
if (emf == null) {
emf = Persistence.createEntityManagerFactory(NOMEPU, propertiesMap);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static ConexaoNotas getInstance() {
if (instancia == null) {
instancia = new ConexaoNotas();
}
return instancia;
}
public static EntityManager getCurrentEM() {
if (SESSION == null) {
conectar();
SESSION = emf.createEntityManager();
SESSION.clear();
SESSION.setFlushMode(FlushModeType.AUTO);
}
return SESSION;
}
public static void fecharConexao() {
if (SESSION != null) {
SESSION.close();
SESSION = null;
}
}
public static void beginTransacao(){
SESSION.getTransaction().begin();
}
public static void commitTransacao(){
SESSION.getTransaction().commit();
}
public static void rollbackTransacao(){
SESSION.getTransaction().rollback();
}
}[/code]
eu utilizo essa classe toda vez q vou fazer uma inclusao, alteracao ou exclusao
utilizo ela assim:
[code]
ConexaoNotas.getCurrentEM();
ConexaoNotas.beginTransacao();
try {
new FuncionarioFacade().persist(objeto); // update ou remove
ConexaoNotas.commitTransacao();
} catch (Exception ex) {
ex.printStackTrace();
ConexaoNotas.rollbackTransacao();
}finally{
ConexaoNotas.fecharConexao();
}[/code]
e qdo eu faco uma busca faco assim
Query query = ConexaoNotas.getCurrentEM().createNamedQuery("TbFuncionario.findAllFuncionario");
query.getResultList();
vale lembra q eu tenho varios subprojetos( todos utilizam esse mesmo esquema de conexao, para inserir, alterar, etc) e eles sao adicionadas no meu projeto principal…
alguem sabe como arrrumar isso???