У меня есть модель:Почему JPQL возвращает только первое и последнее поле в результате запроса с использованием AS?
public class SomeModel extends Model {
private String name;
private String description;
private String comment;
... a lot of other fields
private String note;
}
Я хочу, чтобы получить список моделей из базы данных в виде списка карт с только необходимыми полями. Я делаю это следующим образом:
EntityManager em = GuiceConfigSingleton.inject(EntityManager.class);
Query query = em.createQuery("SELECT
o.name AS ModelName,
o.description AS ModelDescription,
o.comment AS ModelComment,
o.note AS ModelNote
FROM SomeModel o");
query.setHint(QueryHints.RESULT_TYPE, ResultType.Map);
Результаты поиска по этому запросу - это список карт. И каждая карта содержит только первое (ModelName) и последнее (ModelNote) поле (другие поля в базе данных не пусты). Когда я делаю это без «как», используя только:
Query query = em.createQuery("SELECT
o.name,
o.description,
o.comment,
o.note
FROM SomeModel o");
У меня есть все поля, но без правильных ключей. Что не так?
с Скриншоты упрощенный пример:
С "AS": http://imgur.com/bKZnqSx без "AS": http://imgur.com/PieCRzg
UPDATE: Это была ошибка в EclipseLink 2.5.0. С 2.5.2 все в порядке!
Пожалуйста, подумайте о том, чтобы переформулировать свой вопрос, это не имеет большого смысла, поскольку он стоит сейчас. Что вы ожидаете? – Rick
Спасибо, Рик! Я только что редактировал свой вопрос. Надеюсь, теперь это выглядит лучше. –
«Без правильных ключей»? Что вы имеете в виду? – dcsohl