我已经从数据库生成了一个实体类,并在@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 {
...
}
答案 0 :(得分:1)
但是,我的问题是只有地方(@NamedQueries)我应该写我的所有查询,除此之外,我是否需要在类中编写一些特定于该查询的新方法?
答案是否定的,您无需编写任何特定于此查询的新方法或实现此方法。查询执行将由底层持久性提供程序处理。
这也是创建命名查询的唯一方法