QueryDSL и Play Framework - PullRequest
       38

QueryDSL и Play Framework

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

Я использую QueryDSL с JPA2 в течение некоторого времени, и это самая мощная комбинация для ORM, которую я знаю.JPA Criteria API - это катастрофа.С QueryDSL я тоже забыл о JPQL.

Я бы хотел использовать QueryDSL с Play!В Play все выглядит очень хорошо, за исключением тех встроенных частей JPQL, которые представляют собой строки.Это напоминает мне CakePHP ...

Я хотел бы иметь язык запросов, защищающий от рефакторинга, в Play (и некоторых других вещах :)).

Использование QueryDSL было бы простым.Требуется только EntityManager.Но в QueryDSL есть этот генератор классов APT (как и в Hibernate для citeria API).

Кому-нибудь удалось заставить этот генератор классов работать с Play?Можно ли воссоздать и перезагрузить эти классы?

Ответы [ 4 ]

3 голосов
/ 22 сентября 2011

Я думаю, что опыт из Project Lombok с обработкой аннотаций в среде Play поможет вам. Простая настройка обработки APT, но очень специфичная. Посмотрите на модуль play-lombok . Не игнорируйте файл commands.py и измените ссылку org.eclipse.jdt.core-3.6.0.jar, чтобы она соответствовала версии, используемой в вашей версии Play.

Я использую Querydsl во фреймворке Play для всех моих недавних проектов. Я не использую JPA, однако. Я использую свои собственные объектные модели с Querydsl вместо ORM, чтобы получить хорошее соответствие в зависимости от ситуации. У меня не было необходимости в APT с Querydsl.

Я не создавал тесной интеграции между Play и Querydsl, но я просто использовал немного шаблонного в каждом методе контроллера. Когда-нибудь я напишу подходящий плагин.

2 голосов
/ 22 октября 2011

Я запускаю игру с querydsl, используя eclipse.(см. http://blog.mysema.com/2010/10/using-querydsl-in-eclipse.html)

В качестве сгенерированного исходного каталога я использовал app /, что означает, что классы Q будут сгенерированы в том же каталоге, что и классы модели, что не оптимально, но работает.

Добавленоэти строки в dependencies.yml

    - com.mysema.querydsl -> querydsl-jpa 2.2.3
    - com.mysema.querydsl -> querydsl-apt 2.2.3
    - log4j -> log4j 1.2.16
    - javassist -> javassist 3.12.1.GA

repositories:
    - queryDSL:
        type: iBiblio
        root: "http://source.mysema.com/maven2/releases/"
        contains:
            - com.mysema -> *           

Затем используйте play dependencies --sync и play eclipsify и снова откройте проект в eclipse, и он должен работать

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

У меня нет опыта работы с Play, но я знаю, что следующим удалось использовать Querydsl SQL с платформой Play: http://twitter.com/#!/rrmckinley

Он может помочь тебе. Мне неизвестно о какой-либо другой интеграции Querydsl с Play.

0 голосов
/ 22 сентября 2011

Вы можете проверить существующие модули, которые меняют адаптер базы данных (например, этот для Mongo) и сделать что-то похожее на ссылку QueryDSL.Для него должна быть доступна горячая перезагрузка Play, если это модуль.

...