【问题标题】:@NamedQueries, create a new query in entity@NamedQueries,在实体中创建一个新查询
【发布时间】:2014-10-12 12:07:38
【问题描述】:

我从数据库生成了一个实体类,并在 @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 {
...
}

【问题讨论】:

    标签: java jpa ejb


    【解决方案1】:

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

    答案是否定的,您不需要编写任何特定于该查询的新方法或实现它。查询执行将由底层持久性提供程序负责。

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

    【讨论】:

    • 所以我只是在@NamedQuries 中编写一个新查询然后调用它?
    猜你喜欢
    • 2021-07-05
    • 2012-09-30
    • 1970-01-01
    • 2013-02-19
    • 1970-01-01
    • 2023-03-11
    • 2013-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多