Galera já tentei isso ai de cima e não vai…será que o erro está na minha configuração ou a forma que estou fazendo a persistência ? vou postar aqui o código… pra vocês darem uma olhada… só explicando o problema novamente…
quero salvar informações em uma tabela X mais nem todas as vezes todas as minhas entidades vão ter informação… por exemplo…
tenho esse comando
Msg:SIGN,Dt:04534684,210113,161407,2609.4317,S,04802.1543,W,0.02,04,08,5E,End
esse comando gravaria…
comando,imei,data,hora,latitude,direçãoLatitude,longitude,direçãoLongitude,velocidade,dadosEntrada,dadosSaida,checksum,fim … funciona BLZ (Y)
agora se eu recebo esse mesmo comando mas dessa forma…
Msg:SIGN,Dt:04534684,04,08,D6,End
não gravaria…
data,hora,latitude,direçãoLatitude,longitude,direçãoLongitude,velocidade
o problema é que quando recebo um comando assim faltando informações ele pega as informações do comando anterior e grava como se fosse dele…
não consigo fazer com que ele “limpasse” as minhas entidades pra que quando chegar um novo comando ele grave oque estiver vazio com “” e o que vier info gravar… alguma idéia ?
Método que faz a persistência…
[code]
public void TrackerAdd() {
// configuração em MATA-INF / persistence.xml
EntityManagerFactory factory = Persistence.createEntityManagerFactory("trackersite");
EntityManager manager = factory.createEntityManager();
manager.getTransaction().begin();
resptracker tracker = new resptracker();
tracker.setComando(SplitCobraII.getComando());
tracker.setImei(SplitCobraII.getImei());
tracker.setData(SplitCobraII.getData());
tracker.setHora(SplitCobraII.getHora());
tracker.setGrauLatitude(SplitCobraII.getGrauLatitude());
tracker.setGrauLongitude(SplitCobraII.getGrauLongitude());
tracker.setLatitude(SplitCobraII.getLatitude());
tracker.setDirecaoLatitude(SplitCobraII.getDirecaoLatitude());
tracker.setLongitude(SplitCobraII.getLongitude());
tracker.setDirecaoLongitude(SplitCobraII.getDirecaoLongitude());
tracker.setCoordenada(Conversor.getCoordinate());
tracker.setVelocidade(ConversorVelocidade.getGravaSpeed());
tracker.setDadoEntrada(SplitCobraII.getDadoEntrada());
tracker.setDadoSaida(SplitCobraII.getDadoSaida());
tracker.setDataHora(SplitCobraII.getDataTrat());
tracker.setChecksum(SplitCobraII.getChecksum());
tracker.setEnd(SplitCobraII.getEnd());
try {
manager.persist(tracker);
manager.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
e.fillInStackTrace();
} finally {
manager.clear();
manager.getEntityManagerFactory().getCache().evictAll();
manager.close();
factory.getCache().evictAll();
factory.close();
System.gc();
}
}
[/code]
persistence.xml
[code]<?xml version="1.0" encoding="UTF-8"?>
<persistence-unit name="trackersite" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>Hibernate.resptracker</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
<property name="hibernate.hbm2ddl.auto" value="none" />
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.user" value="*****" />
<property name="javax.persistence.jdbc.password" value="********" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/trackersite" />
</properties>
</persistence-unit>
[/code]