Playframework QueryDSL和Play框架
我在JPA2中使用QueryDSL已经有一段时间了,这是我所知道的ORM最强大的组合。JPA标准API是一场灾难。对于QueryDSL,我也忘记了JPQL 我想在游戏中使用QueryDSL!除了作为字符串的JPQL的内联部分外,所有的东西看起来都很好。它让我想起了CakePHP 我希望使用重构证明查询语言(以及其他一些东西:)) QueryDSL的使用将非常简单。它只需要EntityManager。 但是QueryDSL有这个APT类生成器(就像Hibernate for citeria API中的那个一样)Playframework QueryDSL和Play框架,playframework,jpa-2.0,querydsl,Playframework,Jpa 2.0,Querydsl,我在JPA2中使用QueryDSL已经有一段时间了,这是我所知道的ORM最强大的组合。JPA标准API是一场灾难。对于QueryDSL,我也忘记了JPQL 我想在游戏中使用QueryDSL!除了作为字符串的JPQL的内联部分外,所有的东西看起来都很好。它让我想起了CakePHP 我希望使用重构证明查询语言(以及其他一些东西:)) QueryDSL的使用将非常简单。它只需要EntityManager。 但是QueryDSL有这个APT类生成器(就像Hibernate for citeria API
有人设法让这个类生成器与Play一起工作吗?是否可以重新创建和热重新加载这些类?我没有Play方面的经验,但我知道以下方面设法在Play框架中使用Querydsl SQL: 他也许能帮助你。我不知道Querydsl与Play的任何其他集成。我认为Play框架中注释处理的集成将对您有所帮助。设置APT处理很容易,但非常具体。看这张照片。不要忽略commands.py文件并更改org.eclipse.jdt.core-3.6.0.jar引用以匹配您的Play版本中使用的版本 我最近的所有项目都在Play框架中使用Querydsl。然而,我不使用JPA。我将自己的对象模型与Querydsl(而不是ORM)结合使用,以根据情况获得良好的拟合。我不需要使用Querydsl进行APT
我没有在Play和Querydsl之间创建任何紧密的集成,但我只是在每个控制器方法中使用了一些样板文件。总有一天我会编写一个合适的插件。您可以检查更改数据库适配器(如Mongo)的现有模块,并执行类似于link QueryDSL的操作。如果它是一个模块,则应该可以使用Play hot重载。我正在使用eclipse运行Play with querydsl。(见附件) 作为生成的源目录,我使用了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 -> *
然后使用
playdependencies--sync
和playdeclipsify
在eclipse中重新打开项目,它应该可以工作了我浏览了playdlombok模块的源代码。Querydsl不需要javaagent等。它需要使用一些参数运行Java编译器来生成带有APT的源代码文件。这个javaagent是否配置了APT?到处都找不到。“使用Querydsl的自有对象模型”是指使用com.mysema.query.sql.SQLQuery查询?你有公开的例子吗?你已经关掉了hibernate?周末我会给你举一些例子。是的,JPA和Hibernate被完全关闭。这是它重新生成Q。。上课?