2009-06-29 7 views
0

J'utilise oracle TopLink comme couche de persistance avec la logique métier implémentée dans java. J'utilise la classe builder expression et expression pour obtenir des données de la base de données. Nous n'avons pas de lignes dupliquées dans la table de base de données mais lorsque je interroge la base de données via ReadObjectQuery je reçois la même quantité de lignes que dans la table de base de données mais avec le premier enregistrement dupliqué chaque fois.Oracle TopLink: Récupération erronée des enregistrements

S'il vous plaît aidez-moi le plus tôt possible

Répondre

0

Ce comportement montre normalement jusqu'à, si les champs de clé primaire que vous avez défini dans votre application ne sont pas uniques du tout. Ce qui se passe, c'est que Toplink récupère la première ligne et la convertit en objet Java. Pour les lignes consécutives, il semble que le champ de clé primaire défini soit identique à celui de la première ligne. Par conséquent, Toplink ne recommence pas la conversion et charge l'objet avec la même clé à partir de son cache, c'est-à-dire l'objet relatif à la première ligne.

Questions connexes