Итерация списка <Object>из запроса на присоединение с использованием JPA / PLay - PullRequest
0 голосов
/ 22 января 2012

Это мой запрос с использованием диспетчера сущностей. Попытка соединить 2 стола с игровой рамкой и jpa.

 List<Object> joinQryResult = JPA.em().createNativeQuery(
         "select e.elementname as elementname, " +
         "c.comparetype as comparetype, " + 
         "jd.matchvalue as matchvalue " +
         "from details jd " +
         "join elements e on jd.elementnamerid = e.rid " +
         "join comparers c on jd.comparetyperid = c.rid " +
         "where jd.rid = " + temp.rid).getResultList();

 Not sure how to iterate and get the values from List<Object>

Я пробовал это

List<MyClass> myClass = (List<MyClass>)(Object)joinQryResult;


for(MyClass myC:jd)
{
 System.out.println(myC.ElementName); //intellisense shows the property here
}

Определение MyClass: попытка преобразовать List в этот тип

public class MyClass {

    public String ElementName;

    public String CompareType;

    public String MatchValue;

    public JobDetails(String ElementName, String CompareType, String MatchValue)
    {
        this.ElementName = ElementName;

        this.CompareType = CompareType;

        this.MatchValue = MatchValue;
    }
}

Получить эту ошибку

ClassCastException occured : [Ljava.lang.Object; cannot be cast to models.MyClass

1 Ответ

2 голосов
/ 22 января 2012

Результатом запроса будет список с элементами объектов соответствующего типа.

Вы можете сделать следующее для сопоставления с вашим объектом

    List<Object[]> results = query.getResultList();
    JobDetails jobDetail = null;
    for (Object[] objects : results) {
        jobDetail = new JobDetail((String) objects[0],(String) objects[1],(String) objects[2])
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...