当前位置: 首页 > 知识库问答 >
问题:

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

魏烨熠
2023-03-14

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

共有1个答案

巫化
2023-03-14

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

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

这也是创建NamedQuery的唯一方法

 类似资料:
  • 如何使用NamedQuery在jointable上查找实体?我有一个抽象的父类/实体,带有@heritance(strategy=InheritanceType.JOINED)和两个子类/子实体。因此,在数据库中我有一个父表(SDR)和两个子表(xSdrs和ySdrs)。还有另一个表保留,它与表SDR有多对多关系。这就是为什么我在保留和特别提款权之间创建了一个连接表 我打算在父实体Sdr中使用Na

  • 我希望有人能为我在Spring Boot项目中对JPA实体的困惑提供一些帮助。我听说在Spring项目中不应该调用< code>new。我知道这是为了让Spring管理所有的bean,可以通过注入或通过应用程序上下文显式地获得bean。 但是,我不清楚如何获得新的 JPA 实体。如果我有一个用 注释的类和一个处理数据访问的存储库类,如何在服务层中获取新的实体对象? 我已经在应用程序的主类中包含,所

  • 这类似于@inject每次使用时都注入一个新实例,但我在那个线程中找不到答案。 我对CDI和JSF都很陌生,我正在尝试使用CDI而不是JSF注释。我想从MemberController检索凭据。bean本身(两者)都是从jsf页面调用的。问题是MemberController中的Credential实例的名称/密码总是为空,即使我确认Credential中的setter被命中。我不明白为什么有两个

  • 首先,打开Android Studio并选择Create new Project,然后它会让你输入一个名字,你可以任意取一个名字,比如:Weather App。然后你需要输入公司域名。如果你不会真正发布这个app,这个字段就不是特别重要了,但是如果你有的话可以使用自己的域名。然后任意选择一个目录作为这个项目的保存地址。 下一步,它会让你选择最小的API版本。我们选择API 15,因为我们有一个库需

  • 可使用媒体查询,根据所报告的设备特征指定 CSS 文件(响应性设计)。设备上的浏览器检查媒体查询,然后使用对应的 CSS 文件显示网页。 例如,以下媒体查询指定 phone.css 文件用于宽度为 300-320 像素的设备。 <link href="css/orig/phone.css" rel="stylesheet" type="text/css" media="all and (min-w