Playframework - запрос и отображение результатов из объединения нескольких столов - PullRequest
2 голосов
/ 20 сентября 2011

Я новичок в Java и Play Framework (я использую Play 1.2.2 с локальной базой данных MySQL5). Я пытаюсь запросить пару таблиц в базе данных и отобразить результаты объединения таблиц на веб-странице.

Это то, что у меня есть в различных битах:

Контроллер : -

public static void index() {
        List<Mutation> mutation_list= Mutation.getDisorderGene();
        render(mutation_list);       
    }

Модель : -

public class Mutation extends Model {

  public static List<Mutation> getDisorderGene() {
    EntityManager entityManager = play.db.jpa.JPA.em();
    List<Mutation> muts = entityManager.createNativeQuery("select disorder_name, gene_name from Disorder,Mutation where Disorder.id = Mutation.disorder_id order by disorder_name, gene_name").getResultList();
    return muts;
  }

Просмотр : -

#{list items:mutation_list, as:'mutation'}
                    <tr>
                        <td>${mutation.disorder_name}</td>
                        <td>${mutation.gene_name}</td>
                    </tr>
 #{/list}            

И это сообщение об ошибке, которое я получаю!

Ошибка выполнения шаблона

Ошибка выполнения в шаблоне /app/views/Stu/index.html. Возникло исключение MissingPropertyException: оценка исключения свойство 'disorder_name' для java.util.Arrays $ ArrayList, Причина: groovy.lang.MissingPropertyException: Нет такого свойства: disorder_name для класса: java.lang.String.

Я не уверен, в чем проблема. Это с запросом соединения таблицы JPA или что-то не так в представлении.

Есть ли какие-либо изменения в представлении, которое я могу сделать для отображения столбцов?

Большое спасибо.

Ответы [ 2 ]

1 голос
/ 20 сентября 2011

Собственный запрос, который выбирает несколько столбцов по умолчанию, возвращает их как Object[], поэтому ваш getDisorderGene() должен возвращать List<Object[]>, и ваш шаблон должен выглядеть следующим образом:

#{list items:mutation_list, as:'mutation'}
                    <tr>
                        <td>${mutation[0]}</td>
                        <td>${mutation[1]}</td>
                    </tr>
 #{/list}  
0 голосов
/ 07 декабря 2011

Что делать, если вы положили как клаусуле ...

select disorder_name as NameMyPropertyModelClass, gene_name as NameMyPropertyModelClass 
from  Disorder,Mutation 
where Disorder.id = Mutation.disorder_id order by disorder_name, gene_name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...