2011-09-20 82 views
3

我在JPA2上使用QueryDSL已經有一段時間了,它是我知道的ORM最強大的組合。 JPA Criteria API是一場災難。使用QueryDSL我也忘記了JPQL。QueryDSL和Play Framework

我想使用QueryDSL和Play!除了JPQL的內聯部分作爲字符串外,一切看起來都非常好。它讓我想起CakePHP ...

我想在Play(以及其他一些東西:)中使用重構驗證語言)。

QueryDSL的用法很簡單。它只需要EntityManager。 但是QueryDSL有這個APT類生成器(就像來自Hibernate for citeria API的那個)。

有沒有人設法讓這個類生成器使用Play?是否有可能重新創建並重新加載這些類?

回答

1

我有玩沒有經驗,但我知道,下面設法利用Querydsl SQL使用Play框架:http://twitter.com/#!/rrmckinley

他也許能幫助你。我沒有意識到Querydsl與Play的任何其他整合。

3

我認爲experienceProject Lombok與在Play框架中的註釋處理將有助於你。設置APT處理很容易,但非常具體。看看play-lombok module。不要忽略commands.py文件並更改org.eclipse.jdt.core-3.6.0.jar引用以匹配您的Play版本中使用的版本。

我在Play框架中爲我最近的所有項目使用了Querydsl。但是,我不使用JPA。根據具體情況,我使用自己的Querydsl而不是ORM的對象模型。 Querydsl沒有需要APT。

我並沒有在Play和Querydsl之間創建任何緊密集成,但我只是在每個控制器方法中使用了一些樣板。有一天我會寫一個適當的插件。

+0

我脫脂玩 - 龍目島模塊的源代碼。 Querydsl不需要javaagent等。它需要運行帶有一些參數的Java編譯器以使用APT生成源代碼文件。這個javaagent配置APT嗎?找不到任何地方。 通過使用「自己的對象模型與Querydsl」您的意思是使用com.mysema.query.sql.SQLQuery查詢?你有什麼公開的例子嗎?你已經關閉了休眠嗎? –

+0

週末結束時我會舉幾個例子。是的,JPA和Hibernate完全關閉。 – rrmckinley

+0

這是[龍目島經紀人](https://github.com/rzwitserloot/lombok/tree/master/src/eclipseAgent/lombok/eclipse/agent) – rrmckinley

0

您可以檢查更改數據庫適配器的現有模塊(如Mongo的this one),並執行類似於鏈接QueryDSL的操作。如果它是一個模塊,應該可以使用熱重載。

2

我正在用querydsl和eclipse一起玩遊戲。 (請參閱http://blog.mysema.com/2010/10/using-querydsl-in-eclipse.html

由於生成的源代碼目錄我使用的應用程序/這意味着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 --syncplay eclipsify並重新打開Eclipse中的項目,它應該工作

+0

它再生Q ..類? –