我尝试配置 QueryDSL在 Play Framework(使用 Java)中,但没有成功。 我在 Google 中搜索过类似的问题,结果如下:
1. QueryDSL and Play .但是这篇文章建立了与 Lombok 的等效性以及解决方案对我不起作用。
2. Emulating MAVEN process .这是我真正需要将它应用到其他类似模块的东西,但没有展示如何应用的示例。
3. Configure multiple modules . 在这种情况下包括几个模块并且有点困惑。
那么,我如何在 Play 中配置 QueryDSL?任何人都可以包括一个如何做的例子?
提前致谢。
最佳答案
我刚刚使用 play-querydsl 让它工作使用 Play 2.2.2。我按照说明进行操作(在 plugins.sbt 中使用 0.1.1 作为版本号而不是 0.1.0)并将 Q* 模型类生成到 target/scala-2.10/src_managed/main/querydsl
.我使用 Eclipse,所以我运行 play eclipse
以将此文件夹包含在类路径中。
我试图让 APT 注释编译直接在 Eclipse 中工作,但放弃了。
作为旁注,我比较了 QueryDSL 和 EasyCriteria,我发现 EasyCriteria 更易于使用,因为它更接近于 Ebean 的用户友好查询。但是,如果你想要类型安全,QueryDSL 肯定比 JPA 内置的标准 API 更好。
plugins.sbt (Play 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")
}
关于java - 在 Play 2 框架上配置 QueryDSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22861440/