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

为所有实体编写通用spring jpa存储库

鲁永福
2023-03-14

我正在工作的Spring引导应用程序

我们有服务层、Rest控制器和Dao作为存储库。

我想做的是,我将编写一个扩展CrudRepository的BaseRepository,BaseRepository应该接受所有的实体并执行持久操作。

有办法吗??

共有1个答案

浦修文
2023-03-14

不要扩展CrudRepository它的功能都与泛型类型绑定在一起,为一个泛型实现扩展它是很糟糕的。您可能只是想要一些简单的直接使用JPA实体管理器的东西:

import javax.persistence.EntityManager;

import org.springframework.beans.factory.annotation.Autowired;

public class GenericRepository {

    @Autowired
    private EntityManager entityManager;

    public <T, ID> T findById(Class<T> type, ID id) {
        return entityManager.find(type, id);
    }
}
 类似资料:
  • 问题内容: 我需要知道是否有可能在Spring数据其余部分中使用一个Crud存储库来管理多个实体。 范例: 图书馆实体 图书实体 我的要求是 只能使用该存储库来管理图书馆和图书实体。 我尝试插入,到目前为止效果很好。但是此方法不支持其他操作。还有什么其他方法,而不是有两个原始存储库来完成。 问题答案: 当然可以。像这样修改一下您的资料库: 然后,您可以使用以下负载创建/更新您的图书馆及其书籍: S

  • 一:如果我跨多个实体执行操作,该怎么办:我使用哪个存储库?第二:Spring Data Jpa是否允许没有任何类型参数的存储库?

  • 我有一个通用实体,我想使用JPA持久化,以便它的通用值存储在单个列中。简化的实体类如下所示: 类型唯一标识泛型值的类,并且允许具有相同类的多个类型: 我没有找到如何使用Hibernate保持这种泛型类的方法。我找到了替代方法和变通方法,但它们在我看来并不理想。我考虑了以下选项: > 将值的类型设置为JsonNode,并将其类型类标记为com。弗拉德米尔恰。冬眠类型json。JsonBinaryTy

  • 我有几个实体,并使用Spring Data JPA存储库与规范查询我的数据库。因此,我创建了一个泛型类< code>SpecBuilder来基于查询描述(< code>MyQueryDescriptor)构建我的查询。 我的存储库: 和 现在有三件事我不太确定:< br> 1) 使用泛型SpecBuilder是一个干净的设计吗? 2) 有没有办法避免为每个实体编写这些存储库接口?假设一个通用存储库

  • 我的应用程序有250多个表,每个表都有ID和name列。我正在尝试用Hibernate5+将我们的应用程序从Hibernate3迁移到Spring-JPA4.3。 在当前的hibernate层中,我有(选项1): 因此,如何在一个JPA存储库中执行以下操作: