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