我在JPA2中使用QueryDSL已经有一段时间了,这是我所知道的最强大的对象关系映射组合。JPA Criteria API是一场灾难。对于QueryDSL,我也忘记了JPQL。
我想在Play中使用QueryDSL!除了那些作为字符串的JPQL的内联部分之外,一切看起来都很好。这让我想起CakePHP..。
我希望能够使用防重构的查询语言(以及其他一些东西:)。
QueryDSL的用法很简单。它只需要EntityManager。但是QueryDSL有这个APT类生成器(就像Hibernate for citeria API中的生成器一样)。
有没有人设法让这个类生成器与Play一起工作?是否可以重新创建和热重新加载这些类?
发布于 2011-09-22 04:12:08
我认为Play框架中带有注释处理的Project Lombok的experience会对你有帮助。设置APT处理很容易,但非常具体。看看play-lombok module。不要忽略commands.py文件并更改org.eclipse.jdt.core-3.6.0.jar引用以匹配您的Play版本中使用的版本。
我最近所有的项目都在Play框架中使用Querydsl。但是,我不使用JPA。我将自己的对象模型与Querydsl一起使用,而不是ORM,以根据情况进行匹配。我不需要APT with Querydsl。
我没有在Play和Querydsl之间创建任何紧密的集成,但我只是在每个控制器方法中使用了一点样板。总有一天我会写一个合适的插件。
发布于 2011-10-22 19:58:57
我使用eclipse对querydsl运行play。(参见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中重新打开项目,它应该可以工作
发布于 2011-09-22 03:04:59
我没有使用Play的经验,但我知道以下内容成功地在Play框架中使用了Querydsl SQL:http://twitter.com/#!/rrmckinley
他也许能帮到你。我不知道Querydsl与Play有任何其他的集成。
https://stackoverflow.com/questions/7490384
复制相似问题