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

创建没有实体的spring存储库

柯建业
2023-03-14

我想使用SpringDataRepository接口来执行本机查询——我认为这种方式最简单,因为复杂性较低。

但是当扩展接口时。CrudRepository

我的原生查询不返回任何具体的实体,那么创建没有实体的spring repository的最好方法是什么?


共有3个答案

能翔宇
2023-03-14

这对我们有用见实体经理

https://www.baeldung.com/hibernate-entitymanager

@Repository
public class MyRepository {

    @PersistenceContext
    EntityManager entityManager;

    public void doSomeQuery(){
        Query query = entityManager.createNativeQuery("SELECT foo FROM bar");
        query.getResultsList()
        ...
    }

}

顺便说一句,我不认为@Repository注释在这里是必需的..

柳业
2023-03-14

目前,JPA 中没有创建仅具有本机或 JPQL/HQL 查询(使用@Query表示法)的存储库的功能。要解决此问题,您可以创建一个虚拟对象以插入到扩展界面中,如下所示:

@Entity
public class RootEntity {
    @Id
    private Integer id;
}

@Repository
public interface Repository extends JpaRepository<RootEntity, Integer> {
}
戚修雅
2023-03-14

CrudRepositoryJpaRepository被设计为在没有的情况下工作

您最好创建自定义存储库,注入实体管理器并从那里进行查询:

  @Repository
  public class CustomNativeRepositoryImpl implements CustomNativeRepository {

    @Autowired
    private EntityManager entityManager;

    @Override
    public Object runNativeQuery() {
        entityManager.createNativeQuery("myNativeQuery")
         .getSingleResult();
    }
}

 类似资料:
  • 我试图创建一个简单的网站,其中托管主题和评论。我已经从主题开始,并为它们创建了存储库: 我已经在servlet上下文中定义了存储库的路径。xml: 现在,我想在我的存储库中包含注释,但以下代码不起作用: 我的项目甚至都没建好。你能给我一个建议吗,如何为多个实体创建存储库(主题类和注释类是用@Entity声明的)? 我面对的是: TopicRepository类图标上有HDD图片 org.sprin

  • 在Spring Data JPA的“入门”示例中,我们创建了一个扩展CrudRepository的接口。但是,它只处理一个实体: 在现实世界的应用程序中,有许多实体(表),我们需要对它们进行CRUD操作。使用具有多个(相关或无关)实体的Spring数据JPA存储库的正确方法是什么? 我是否必须为每个实体创建接口并逐个自动连接它们(现在听起来这是一个非常疯狂的想法)?

  • 我创建了一个基本的Spring MVC / JPA / Hibernate应用程序。我试图保存一个UserProfile实体来测试我是否真的可以持久化它,但是什么也没有保存,也没有抛出异常。 在控制器方法中,我创建了一个简单的UserProfile(这是一个@Entity),并将其发送到服务方法。类使用 @Service 对类进行批注,并使用 @Transactional 对 addUserPro

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

  • 问题内容: 我的JPA / Hibernate应用程序中有几个映射的对象。在网络上,我收到的数据包代表这些对象的更新,或者实际上可能完全代表新的对象。 我想写一个像 如果数据库中存在一个带有pk primaryKey的对象,则该对象将返回所提供类的一个对象,否则将创建该类的新对象,并将其持久化并返回。 接下来,我将使用该对象来更新事务中的所有字段。 在JPA中是否有惯用的方法来执行此操作,还是有更

  • 我尝试了以下代码,但出现了错误-spring web ResponseEntity无法序列化。 org.springframework.data.redis.serializer.SerializationException:无法序列化;嵌套异常org.springframework.core.serializer.support.SerializationFailedException:无法使用