J'ai une application avec un GUI et une liste de stocks qui sont enregistrés dans un db. J'utilise 1 EntityManager tout le temps que l'application est en cours d'exécution, pour supprimer, modifier et ajouter de nouveaux stocks. J'ai un fil qui saisit périodiquement les stocks réels des stocks et les enregistre dans la DB. J'utilise un autre gestionnaire d'entité dans le thread (cause de la sécurité du thread). Il ressemble à ceci:Modifications de modèle dans une application JPA multithread
// grabbing the actual info and making actualStockPrice with it
....
// adding the correct stock to the new stockprice
actualStockPrice.setStock(stock);
// Can't do the next line cause of duplicate primary key
//stock.getActualStockPrices().add(actualStockPrice);
// Saving new price in db
stockPriceModel.saveActualStockPrice(actualStockPrice);
J'ai un bouton pour afficher une table avec toutes les stockprices enregistrées d'un stock. Je remplis la table avec stock.getActualStockPrices() mais parce que je n'ai jamais ajouté les nouveaux stockprices au stock, le tableau montre seulement les stockprices qui étaient là au début du programme. Si je ne commente pas le stock.getActualStockPrices(). Add (actualStockPrice); Je reçois une erreur de clé primaire en double dès que j'économise le stock à la DB, cause du nouveau stockprice trouvé dans le stockstocklistList de l'action. Alors que faire :?
Cela semble fonctionner maintenant - merci :) –
@BieneMaja Vous êtes les bienvenus –
J'ai maintenant rencontré un problème avec cela. Dire que mon programme fonctionne depuis longtemps et amassé beaucoup de stockPrices. Si je veux maintenant les voir et que j'appelle fusionner sur le stock, cela peut prendre beaucoup de temps en fonction du nombre de cours des actions (par exemple quelques secondes pour ~ 1000 prix). Donc, plus je ne fusionne pas, plus il faut de temps pour les fusionner (c'est logique). Que puis-je faire contre cela? –