J'utilise JPA et permet de dire que je fais quelque chose comme çaJPA, scope et autosave?
public class MoRun extends Thread {...
public void run() {
final EntityManagerFactory emFactory = Persistence.createEntityManagerFactory("pu");
EntityManager manager = emFactory.createEntityManager();
manager.setFlushMode(FlushModeType.COMMIT);
someMethod(manager);
...
}
public void someMethod(EntityManager manager){
Query query = manager.createNamedQuery("byStates");
List<State> list = query.getResultList();
for (State state : list) {
if(someTest)
state.setValue(...)
}
...
}
Donc, pour ces objets qui passent « someTest » et les valeurs sont mises à jour sont ces changements persistaient automatiquement à la DB, même si il n'y a pas de transaction et je ne pas explicitement "manager.save (state)" l'objet? Je demande parce que cela semble être le cas et je me demandais si le flush le fait?
Comment/où exécutez-vous ce code? Quel type de transaction utilisez-vous (RESOURCE_LOCAL ou TRANSACTION)? –