Table sans primary key avec Hibernate/JAVA - Java - Programmation
Marsh Posté le 20-02-2007 à 10:26:14
brisssou a écrit : pas possible, il faut une clef primaire. |
l'inconveignent c'est que je ne peux pas rajouter de clef primaire
Marsh Posté le 20-02-2007 à 10:50:57
brisssou a écrit : |
http://www.hibernate.org/hib_docs/ [...] ompositeid
maÿssapu
Marsh Posté le 20-02-2007 à 11:10:33
oui j'ai déjà creer une cle composite avec les 9 champs. Mais je doit copier les donnée de la TABLE A dans une TABLE B. Or il y a + de 500 000 lignes.
Donc j'ai un OutOfMemoryError si je stock les Id dans une List<MonObjectId>.
J'ai donc concatené ces 9 champs en un seul String, pour avoir une List<String>, afin d'eviter le probleme de memoire.
Ensuite je recupere les MonObject 500 par 500 dans une List<MonObject> pour les mettre dans ma TABLE B.
Mais au bout de 10 minutes je commence a avoir des OutOfMemoryError aussi
Marsh Posté le 20-02-2007 à 11:20:12
du coups j'essaye d'utiliser ScrollableResults mais pour l'instant c pas evident, j'essaye de comprendre...
Marsh Posté le 20-02-2007 à 11:44:14
brisssou a écrit : est-ce que ça serait pas plus performant de faire l'insert directement en SQL ?
|
euh ce genre de trucs fonctionne pas trop en general
Marsh Posté le 20-02-2007 à 11:48:13
après un rapide (très rapide en fait) tour sur google (j'ai donc rien vérifié à fond), mySQL semble supporter ce genre de syntaxe. Si mySQL le fait, je suppose qu'un paquet d'autres doivent le faire aussi, non ?
Marsh Posté le 20-02-2007 à 12:02:29
Pour remonter un cran au dessus dans un modele relationnel si tu as deux tables avec la meme structure c'est qu'il y a surement un souci de modelisation ...
Marsh Posté le 20-02-2007 à 12:05:20
non elles n'ont pas le meme nombre de champs, juste une dizaine de champs en commun
Marsh Posté le 20-02-2007 à 12:12:47
pourquoi tu ecris pas dans un fichier tout ça progressivement pour pas saturer la memoire ?
Marsh Posté le 20-02-2007 à 13:05:52
cooltwan a écrit : Pour remonter un cran au dessus dans un modele relationnel si tu as deux tables avec la meme structure c'est qu'il y a surement un souci de modelisation ... |
pas faux. Mais déjà, des tables sans clef primaire donc bon. Et puis, c'était un exemple hein !
Marsh Posté le 20-02-2007 à 09:22:40
Bonjour, voici mon souci.
Je veux avoir acces aux données d'une TABLE A qui n'a pas de clé primaire (car elle a été faite il y a longtemps).
Pour obtenir une clé unique de la TABLE A, je concatene 9 champs de la table (ce qui me donne un String).
Et dans mon code j'ai une variable:
List<String> listKey
qui contient l'ensemble des cles unique, et que je souhaite récupérer une liste: List<MonObject> listMonObject
correspondant au cle unique de la variable listKey.
Or la TABLE A contient + de 500 000 lignes et ca prend 2 jours au moins
Voici ma methode dans mon dao:
Auriez-vous une idee d'une autre maniere de procéder qui serai beaucoup + rapide?
Merci d'avance.