在Play 2 Framework上配置QueryDSL

我尝试在Play Framework中配置QueryDSL (使用Java),但没有成功。 我在谷歌搜索过类似的问题,这就是我发现的:

1. QueryDSL和Play 。 但这篇建立与Lombok等效的post和解决方案对我来说并不适用。

2. 模拟MAVEN过程 。 这是我真正需要将它应用于其他类似模块,但没有显示如何的示例。

3. 配置多个模块 。 在这种情况下包括几个模块,有点混乱。

那么,我如何在Play中配置QueryDSL? 任何人都可以提供一个如何做的例子?

提前致谢。

我只是使用play-querydsl和Play 2.2.2一起工作。 我按照说明操作(使用0.1.1作为plugins.sbt中的版本号而不是0.1.0),并将Q *模型类生成为target/scala-2.10/src_managed/main/querydsl 。 我使用Eclipse,所以我运行了play eclipse以在classpath中包含这个文件夹。

我试图让APT注释编译直接在Eclipse中工作,但放弃了。

作为旁注,我比较了QueryDSL和EasyCriteria,我发现EasyCriteria更容易使用,因为它更接近Ebean的用户友好查询。 但是,如果您想要类型安全,QueryDSL肯定比JPA的内置标准API更好。

plugins.sbt(播放2.2.2):

 // Comment to get more information during initialization logLevel := Level.Warn // The Typesafe repository resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/" // Use the Play sbt plugin for Play projects addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.2.2") addSbtPlugin("com.code-troopers.play" % "play-querydsl" % "0.1.1") 

build.sbt(播放2.2.2):

 name := "project" version := "1.0-SNAPSHOT" libraryDependencies ++= Seq( javaJdbc, javaJpa.exclude("org.hibernate.javax.persistence", "hibernate-jpa-2.0-api"), cache, filters, "org.hibernate" % "hibernate-entitymanager" % "4.3.5.Final", "com.mysema.querydsl" % "querydsl-jpa" % "3.3.4", "postgresql" % "postgresql" % "9.1-901-1.jdbc4", "org.mindrot" % "jbcrypt" % "0.3m", "net.sf.opencsv" % "opencsv" % "2.3" ) play.Project.playJavaSettings playJavaSettings ++ QueryDSLPlugin.queryDSLSettings val current = project.in(file(".")).configs(QueryDSLPlugin.QueryDSL) QueryDSLPlugin.queryDSLPackage := "models" play.Keys.lessEntryPoints <<= baseDirectory { base => (base / "app" / "assets" / "stylesheets" * "*.less") }