J'essaye de conserver beaucoup de données mais j'ai toujours une "memoryOutException". J'ai déjà essayé le flush, le clear, le close ... tout ce que toute sorte de solution présentait ici sous SOF .. et aucun ne fonctionnait, ma mémoire ne cessait de croître et le persist/commit se faisait de plus en plus lent ...a une fuite de mémoire Hibernate ogm? (Ou quelque chose ne se ferme pas bien)
public class Insersecao1 {
private static EntityManagerFactory emf;
private static SessionFactory factory;
public static void main(final String[] args) throws Exception {
File pathFile = new File("D:\\Dados lab\\Database-json");
AnalyzedCommit analyzedCommit = null;
emf = Persistence.createEntityManagerFactory("hikePu");
EntityManager entityManager = emf.createEntityManager();
entityManager.getTransaction().begin();
int count = 1;
for (File f : pathFile.listFiles()) {
analyzedCommit = ... ;
entityManager.persist(analyzedCommit);
if (count % 75 == 0) {
entityManager.getTransaction().commit();
entityManager.close();
entityManager = emf.createEntityManager(); //Tried create a new one
entityManager.getTransaction().begin();
}
count++;
System.out.println(count);
}
} }
en utilisant Maven:
<dependency>
<groupId>org.hibernate.ogm</groupId>
<artifactId>hibernate-ogm-neo4j</artifactId>
<version>5.0.4.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.jbossts</groupId>
<artifactId>jbossjta</artifactId>
<version>4.16.6.Final</version>
</dependency>
Et Persistent:
<persistence-unit name="hikePu" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ogm.jpa.HibernateOgmPersistence</provider>
<properties>
<property name="hibernate.ogm.datastore.provider" value="neo4j_embedded" />
<property name="hibernate.ogm.datastore.database" value="EasyDB" />
<property name="hibernate.ogm.neo4j.database_path" value="D:\Dados lab\mydb" />
<!-- <property name="hibernate.ogm.neo4j.database_path" value="mydb" />-->
<property name="dbms.allow_format_migration" value="true" />
</properties>
</persistence-unit>