java - 在 Play 2 框架上配置 QueryDSL

标签 java playframework-2.0 sbt querydsl

我尝试配置 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/

相关文章:

scala - 是否可以将 json4s 3.2.11 与 Spark 1.3.0 一起使用?

java - 在 <code> 标签内用 <br/> 替换换行符,用 替换空格

java - 在 Java Web 应用程序中从应用程序服务器外部提供静态数据的最简单方法

java - 在我的 Play 应用程序中使用 Ebean/JPA,如何删除 OneToOne 关系中的对象?

scala - 光滑地联接两个表并获得两个表的结果

database - Heroku POSTGRESQL - "Too many connections for role"错误

java - 通过java检索neo4j节点数据时出错

java - 使用 log4j 时没有得到预期的输出

scala - sbt:在跨平台项目中生成共享源

scala - 在控制台repl中使用scalaz,而无需创建项目