创建没有实体的弹簧存储库
2022-09-01 04:33:11
我想使用spring数据存储库接口来执行本机查询 - 我认为这种方式是最简单的,因为复杂性低。
但是在扩展接口时 我需要写 T - 我的实体,这不可用。CrudRepository<T, ID>
我的本机查询不返回任何具体的实体,那么在没有实体的情况下创建spring存储库的最佳方法是什么?
我想使用spring数据存储库接口来执行本机查询 - 我认为这种方式是最简单的,因为复杂性低。
但是在扩展接口时 我需要写 T - 我的实体,这不可用。CrudRepository<T, ID>
我的本机查询不返回任何具体的实体,那么在没有实体的情况下创建spring存储库的最佳方法是什么?
CrudRepository
或者不是为没有一对而工作而设计的。JpaRepository
<Entity,ID>
您最好创建自定义存储库,注入实体管理器并从那里进行查询:
@Repository
public class CustomNativeRepositoryImpl implements CustomNativeRepository {
@Autowired
private EntityManager entityManager;
@Override
public Object runNativeQuery() {
entityManager.createNativeQuery("myNativeQuery")
.getSingleResult();
}
}
目前,JPA 中没有仅使用本机或 JPQL/HQL 查询(使用@Query表示法)创建存储库的功能。要解决此问题,您可以创建一个虚拟对象以插入到扩展界面中,如下所示:
@Entity
public class RootEntity {
@Id
private Integer id;
}
@Repository
public interface Repository extends JpaRepository<RootEntity, Integer> {
}