Я должен быть действительно глупым, но я нахожусь в своем решении с проблемой JPA, используя MyEclipse 7.5.Созданный мастером метод JPA DAO не возвращает итерируемый список
Я получаю доступ к базе данных DB2 (на AS400) через JPA. У меня есть обратная конструкция простой таблицы для предоставления DAO с некоторыми методами «поиска». Все идет нормально.
Если я бег ЗЕЬЕСТА над столом, таким образом, я получаю 4 строки:
SELECT * FROM MyTable WHERE MyValue = '1234'
Однако, если я пытаюсь получить доступ к этой же 4 записи с помощью JPA, я получаю список, это правильный размер (4), но содержит 4 объекта, которые все же, все копии первого объекта найдено:
List <MyTableObject> objects = dao.findByMyValue("1234");
Это почти как если внутренний объект запроса, что класс DAO создает не может перебирать строки данные. Я изменил файл reveng.xml со множеством способов, и я поработал с созданным DAO, но я никуда не уйду. Я пропустил что-то действительно очевидное здесь? Я просто хочу получить список объектов таким же образом, что обычный оператор SELECT возвращает набор результатов!
(Это MyEclipse 7.5, используя Hibernate 3.2 и связанную с ним библиотеку JPA).
UPDATE: вот сгенерированный код, который findByMyValue() переходит к (Логгина/TRY прилов удалены для ясности):
@SuppressWarnings("unchecked")
public List<PolicyStatFile> findByProperty(String propertyName, final Object value)
{
final String queryString = "select model from MyTableObject model where model." + propertyName + "= :propertyValue";
Query query = getEntityManager().createQuery(queryString);
query.setParameter("propertyValue", value);
return query.getResultList();
}
FINAL UPDATE Это было все о модели: см комментарии к эта почта. По сути, модель, созданная из файла обратной инженерии, была недействительной, потому что у меня не было действительно уникального ключа. Как только я решил это (подкрепленный комментариями здесь), все было хорошо.
Можете ли вы опубликовать источник для метода 'findByMyValue()', а также запроса, который он использует (если есть)? – ChssPly76
Спасибо, что ответили! Я обновил исходное сообщение с помощью источника – Ben