Oracle TopLink: ошибочное дублирование записей - PullRequest
1 голос
/ 29 июня 2009

Я использую оракул TopLink как постоянный слой с бизнес-логикой, реализованной в Java. Я использую выражения и класс построителя выражений для получения данных из базы данных. Проблема состоит в том, что в таблице базы данных у нас нет дублирующихся строк, но когда я запрашиваю базу данных через класс ReadObjectQuery, я получаю такое же количество строк, что и в таблице базы данных, но каждая копия дублируется каждый раз, так что все строки показывают первую запись.

Пожалуйста, помогите мне как можно скорее

1 Ответ

0 голосов
/ 21 октября 2009

Это поведение обычно проявляется, если поля первичного ключа, которые вы определили в своем отображении, вообще не являются уникальными. В результате Toplink получает первую строку и преобразует ее в объект Java. Кажется, что для последовательных строк определенное поле первичного ключа идентично полю из первого ряда. Поэтому Toplink не выполняет преобразование снова и загружает объект с тем же ключом из своего кэша, т.е. объект, относящийся к первой строке.

...