我有一个Maven项目,我想与JPA合作。
我的pom.xml是
<dependencies>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.197</version>
</dependency>
</dependencies>
我有以下课程
package edu.javacd.reviewservice;
import javax.persistence.Entity;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
@Entity
@Table(name = "REVIEW")
@NamedQueries({ @NamedQuery(name = "Review.findAll", query = "SELECT r FROM Review r"),
@NamedQuery(name = "Review.findById", query = "SELECT r FROM Review r WHERE r.id = :id"),
@NamedQuery(name = "Review.findByMovieId", query = "SELECT r FROM Review r WHERE r.movieId = :id") })
public class Review implements Serializable {
}
我必须如何配置pom.xml以使用@NamedQueries批注
答案 0 :(得分:0)
编辑:注释位于此软件包中:javax.persistence.NamedQueries
通常,您的pom.xml已经使用@NamesQueries
注释进行配置。
编辑:并且您缺少EclipseLink实现的依赖项:
查看此旧帖子:How to setup Eclipselink with JPA?
您的3个依赖项(它们是外部库)分别代表:
此注释使您可以列出将在程序中使用的所有查询及其sql语句。而不是在代码中直接输入sql语句,您将得到以下内容:
Query query = em.createNamedQuery("Review.findAll");
List results = query.getResultList();
答案 1 :(得分:0)
您将在Java @NamedQueries中找到persistence api注释和您提到的其他注释(@ Entity,@ Table,@ NamedQuery)。在您的pom.xml中将其coordinates(或其他使用它的库,例如Hibernate,WildFly等)添加为依赖项以使用它们:
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</dependency>