@NamedQueries,在实体中创建一个新查询

时间:2014-08-19 11:46:21

标签: java jpa ejb

我已经从数据库生成了一个实体类,并在@NamedQueries内部创建了一些可用的“默认”查询。因此,当我必须创建新的SQL查询时,我只需编写@NamedQuery并使用名称和新的SQL查询填充参数。但是,我的问题是只有地方(@NamedQueries)我应该写我的所有查询,除此之外,我是否需要在类中编写一些特定于该查询的新方法?

@Entity
@Table(name = "category")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Category.findAll", query = "SELECT c FROM Category c"),
    @NamedQuery(name = "Category.findById", query = "SELECT c FROM Category c WHERE c.id = :id"),
    @NamedQuery(name = "Category.findByName", query = "SELECT c FROM Category c WHERE c.name = :name")})
public class Category implements Serializable {
...
}

1 个答案:

答案 0 :(得分:1)

但是,我的问题是只有地方(@NamedQueries)我应该写我的所有查询,除此之外,我是否需要在类中编写一些特定于该查询的新方法?

答案是否定的,您无需编写任何特定于此查询的新方法或实现此方法。查询执行将由底层持久性提供程序处理。

这也是创建命名查询的唯一方法