Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java @NamedQueries,在实体中创建新查询_Java_Jpa_Ejb - Fatal编程技术网

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

Java @NamedQueries,在实体中创建新查询,java,jpa,ejb,Java,Jpa,Ejb,我从数据库生成了一个实体类,@namedquerys注释中创建了一些可用的“默认”查询。所以,当我必须创建新的sql查询时,我只需编写@NamedQuery并用名称和新的sql查询填充参数。然而,我的问题是,我应该在(@namedquerys)中编写所有查询,除此之外,我是否需要在类中编写特定于该查询的新方法 @Entity @Table(name = "category") @XmlRootElement @NamedQueries({ @NamedQuery(name = "Cate

我从数据库生成了一个实体类,@namedquerys注释中创建了一些可用的“默认”查询。所以,当我必须创建新的sql查询时,我只需编写@NamedQuery并用名称和新的sql查询填充参数。然而,我的问题是,我应该在(@namedquerys)中编写所有查询,除此之外,我是否需要在类中编写特定于该查询的新方法

@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 {
...
}
然而,我的问题是,我应该在(@namedquerys)中编写所有查询,除此之外,我是否需要在类中编写特定于该查询的新方法

@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 {
...
}
答案是否定的,您不需要编写任何特定于此查询的新方法或实现此查询。查询执行将由底层持久性提供程序负责


这也是创建namedqueries的唯一方法

所以我只需在@namedqueries中编写一个新的查询,然后调用它?谢谢Manjunath Anand!