我是jsf和java的新手,现在用jsf构建web项目,使用jpa和jpql。 现在在我的项目中编写jpql查询我喜欢这样:
Query q = em.createQuery("SELECT a FROM Advert as a where a.razdel like ?1 and a.categoryId like ?2" );
但我已经读过,查询dsl在使用时更好更方便。 所以我已经阅读了一些教程,并在那里找到了:
Add the following dependencies to your Maven project and make sure that the Maven 2 repo of Mysema Source (http://source.mysema.com/maven2/releases) is accessible from your POM :
<dependency>
<groupId>com.mysema.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>${querydsl.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.mysema.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
<version>${querydsl.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.1</version>
</dependency>
但是在哪里添加此设置? 在我的项目中,我只有web.xml,persistence.xml以及所有这些?
答案 0 :(得分:1)
您必须在文件pom.xml
中添加此内容,如下所示:
<dependencies>
// add the stuff here
</dependencies>
要完成这项工作,您可能需要在${querydsl.version}
中定义<property>
的值。这看起来应该类似于:
<properties>
<querydsl.version>THE_REAL_VERSION_NUMBER</querydsl.version>
</properties>
看起来您还必须添加可以下载文件的存储库:
<repositories>
<repository>
<id>Mysema Source</id>
<name>Mysema Source - Releases</name>
<url>http://source.mysema.com/maven2/releases)</url>
</repository>
</repositories>
如果您没有pom.xml
,则不会有基于Maven的项目。如果是这种情况,你真的应该阅读基本的Maven教程。
如果您不想使用Maven,您还可以手动下载所需的库jar文件并将它们放在Web应用程序的WEB-INF/lib
文件夹中。