Некоторые ограничения в EJB 3.0 и инфраструктуре Toplink - PullRequest
0 голосов
/ 13 ноября 2009

У меня есть проект, использующий EJB 3.0 и реализующий инфраструктуру Toplink для уровня модели.

При использовании EJBQL для обработки данных, я вижу, что у него есть некоторые ограничения:

  • Он не может обрабатывать данные, такие как поиск части даты, такой как день, месяц или год
  • Он не может найти дату и время от ... до
  • Не может сравнивать поле даты и времени
  • Он не может сопоставить класс, а не сущность, с настраиваемым собственным запросом выбора, потому что я хочу получить данные List из оператора SELECT, но когда я запрашиваю в случае объединения 2 или более таблиц и сопоставления выходных данных объекта с классом, но это невозможно

@ PersistenceContext private EntityManager em;

em.createNativeQuery ( "SELECT a.usertype, b.username, b.userpass ОТ таблицы a, tableb b WHERE a.id = b.id, MyClass.class) .getResultList

.....

class MyClass () {
Строка usertype;
Строка username;
Строка userpass;

}

Не могли бы вы помочь мне с идеями?

Спасибо заранее!

1 Ответ

0 голосов
/ 05 января 2010
  • Не может, сделай это в своем коде. В противном случае вам нужно использовать что-то конкретное для базы данных на одной стороне вашего состояния.
  • Может, почему бы и нет. Вы можете использовать between :fromDate and :toDate в запросе или > :fromDate и < :toDate в NamedQuery. Где проблема.
  • Может. Как и в предыдущем случае, используйте знак = вместо
  • Может использовать @SqlResultSetMapping. См. это .
...