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

不执行通过@query注释对Postgresql的本机sql查询

农鸿达
2023-03-14
1) CREATE or replace view camera_layout AS
select layout_id, unnest(layout.camera_ids) as camera_id from layout

2) CREATE or replace view camera_region AS
select c.camera_id as camera_id ,object.region_id
FROM object LEFT JOIN camera c on object.object_id = c.object_id WHERE object.region_id = ?1

3) CREATE or replace view region_layout AS
select distinct cl.layout_id from camera_layout cl,
camera_region cr where cl.camera_id in (select cr.camera_id from camera_region cr)

4) SELECT l from layout l where l.layout_id in (select rl.layout_id from region_layout rl)


我的服务是这样的:

存储库:


@Repository
public interface LayoutRepository extends JpaRepository<Layout,Integer> {

 @Query(value = "create or replace view camera_layout AS\n" +
         "select layout_id, unnest(layout.camera_ids) as camera_id from layout" ,
          nativeQuery = true)
    void createViewLayoutCamera();

 @Query(value = "CREATE or replace view camera_region AS\n" +
            "select c.camera_id as camera_id ,object.region_id\n" +
            "FROM object LEFT JOIN camera c on object.object_id = c.object_id WHERE object.region_id = ?1 " +
            "",nativeQuery = true)
    void createViewCameraRegion(Integer region);


    @Query(value = "create or replace view region_layout AS\n" +
            " select distinct cl.layout_id from camera_layout cl,\n" +
            "camera_region cr where cl.camera_id in (select cr.camera_id from camera_region cr)",nativeQuery = true)
    void createViewRegionLayout();

   @Query( value = "select l from layout l where l.layout_id in (select rl.layout_id from region_layout rl)",nativeQuery = true)
    List <Layout> filterRegion();


   @Override
    public List<LayoutDTO> filterRegion(Integer region_id) {

        ArrayList<LayoutDTO> convert_objects = new ArrayList<>();

        LayoutDTO conv_object;

     layoutRepository.createViewLayoutCamera();


     layoutRepository.createViewCameraRegion(region_id);

  
     layoutRepository.createViewRegionLayout();

     List <Layout> objects = layoutRepository.filterRegion();



当尝试执行时。它返回“查询没有返回结果”,Hibernate SQL调试器表示只有第1个查询有效。“Hibernate:创建或替换view camera_layout AS select layout_id,unnest(layout.camera_ids)AS camera_id from layout”其余部分分解,尽管它们应该能帮助我,但我还是提前感谢

共有1个答案

干稳
2023-03-14
@Modifying
@Query(value = "create or replace view camera_layout AS\n" +
         "select layout_id, unnest(layout.camera_ids) as camera_id from layout" ,
          nativeQuery = true)
void createViewLayoutCamera();
 类似资料:
  • 我对Spring中的原生查询有一个问题。我在param value中使用了带有参数nativequery=true注释@query和SQL查询。 而在RezerWacjamanager.java中: 问题是什么时候调用方法RezerWacjadao.getDoStepnosCnatypy(dataOd,dataDo)并执行此查询。我得到一个错误错误: DoStepNosCtypyListdTo.j

  • 但是显示错误“Distinc expected”,是因为我在@Query注释中使用了*而得到的吗?请问怎么了?

  • 我一直试图理解HQL和JPQL之间的区别。冬眠留档在这里 建议写入选择是JPQL所必需的,但不是在HQL中。但是当我尝试在Spring数据JPA的查询注释中编写HQL或JPQL时,HQL和JPQL都可以工作。 我的理解是,既然查询注释是针对JPA的,为什么支持HQL? 或者让我换个说法- 我们可以在查询注释中编写HQL吗——Spring数据JPA支持两者吗?

  • 问题内容: 有什么方法可以通过JPA注释指定SQL注释?表和列的注释。 问题答案: 有什么方法可以通过JPA注释指定SQL注释?表和列的注释。 否。如果要定义表和列注释,最好的选择是在生成的DDL中根据事实进行操作,然后再对数据库执行操作。

  • 关于注释和注释,我遇到了一个有趣的问题在Spring Boot项目上,spring data jpa也在项目中。 基本上,我有软删除机制,这是为实体设置一个有效的日期(例如属性列在实体类中带有属性)。这些实体用注释类似于。这样,将设置为now和before的软删除的实体自动删除。(例如实体类) 我还有一些其他实体没有(例如实体类) 以及其他一些可用的表。如果是Jpa查询带注释的方法。我正面临着一些

  • 问题内容: 我正在使用R包通过R访问我的PostgreSQL数据库(9.3)。我有一些非常长且较大的sql查询(从raster2pgsql生成的几个MB大。)。 如何在R中以语句形式发送/执行sql查询文件? 正常方式 似乎无法通过来工作。我试图通过读取整个sql文件作为字符向量,但是这也失败了,因为dbSendQuery显然仅支持单个命令? 问题答案: 或仅用于“ SQL”部分,而不是psql命