首页 文章

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

提问于
浏览
1

我正在开发Spring Boot应用程序 .

我们有Service Layer,Rest Controller和Dao作为存储库 .

我的数据库中有20到30个表,我不想为每个实体创建存储库并将其扩展到CrudRepository .

例如:用户是一个实体,要对用户执行持久性操作,我必须创建扩展CrudRepository的UserRepository .

与部门,公司等相同......

我想要做的是,我将编写一个扩展CrudRepository的BaseRepository,基础存储库应该接受所有实体并进行持久化操作 .

有办法吗?

1 回答

  • 1

    不要扩展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);
        }
    }
    

相关问题