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

JPARepository是否使用方法返回类型来查找目标表?

凌蕴藉
2023-03-14

这似乎可行,但我希望有人能证实这一点:

我的实体有一个基类BaseEntity。

@Entity
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public abstract class BaseEntity {
...
}

然后我有几个实体,比如从BaseEntity扩展的A、B和C。此外,我还有一个定义为:

JPARepository<BaseEntity, Long>

现在,我似乎可以使用这个存储库单独查询表A、B或C,只需更改返回类型。例如:

public List<B> findBsByNameContaining(String name);

将导致仅从表B中选择行的查询。

真的是这样吗?

共有1个答案

司马庆
2023-03-14

如果您提供了您在存储库接口级别声明的类型的子类型,我们将使用该子类型来执行查询(读取:Essential triggerem.createQuery(typeReturnedByTheMethod))。如果返回的类型不是存储库管理的域类的子类型,我们仍将使用普通域类型。

 类似资料:
  • 我设置了多个这样的父子实体。 在前端,我有一个页面显示一个营表,供用户选择以查看详细信息。此页面依赖于RESTful API,并将存储库和服务类设置为RESTful API。 我的问题是JPARepository的方法不仅返回营条目列表,还返回营链接到的父旅实体,以及每个营包含的所有关联子连。它会使JSON数据膨胀(我不需要表中的所有细节),并使调试时难以读取,更不用说将所有数据转储到客户端的安全

  • 这个问题的答案似乎很简单。毕竟,如果您从接口检查方法的文档,那么它会说它返回类,而类的文档,那么它会说创建它的唯一方法是通过方法。但是,如果您查看方法的类型,那么您很快就会注意到它并不返回类。相反,它返回接口的实例。 所以我的问题是:它是否真的返回类?如果它真的返回了那个类,那么为什么即使文档中说它返回了这个类,也要将它作为接口返回呢?编写是否安全,或者是否有人编写的实现,该实现实际上返回一个不同

  • 问题内容: 这些天来我一直在学习Java,而我读到的才是真正有趣的。现在,我想知道C#中的Properties和Accessor方法是否相同?还是C#已经自动返回克隆的副本? 谢谢。 问题答案: 引用就是……对存储在内存中的某个对象的引用。除非您明确编写代码以创建克隆并返回对该对象 的引用 ,否则您将始终绕过对同一实例的引用。 它试图避免您遇到的情况是将对象引用移交给您所依赖的调用方。您无法控制谁

  • 问题内容: 这就是我想要做的。使用反射,我想获取所有方法及其返回类型(非泛型)。我一直在这样做。但是,当我遇到返回类型未知的方法时,我遇到了限制。 我如何知道方法的返回类型是否通用?我没有奢求在运行时拥有对象。我正在尝试使用Google 或使用抽象类来获取类型信息。我想关联到对象的方法。 有人认为Java不保留通用信息。在这种情况下,为什么第一次强制转换有效而第二次强制转换无效。 任何帮助表示赞赏

  • 我的JpaRepository中有一个查询方法 通过实例变量

  • 问题内容: 由于发送给Java方法的参数指向调用方方法中的原始数据结构,因此它的设计者是否打算像其他语言(如C)那样使用它们来返回多个值? 还是这是对Java通用属性(变量是指针)的危险滥用? 问题答案: 很久以前,我与Ken Arnold(Java团队的一名成员)进行了一次对话,大概是在1996年的第一次Java One会议上。他说他们正在考虑添加多个返回值,以便您可以写类似: 当时和现在的推荐