IT'S DO
728x90

아래와 같은 맵퍼 내용을 넣고 api를 불러들이니 에러가 나왔다.

 

# 에러내용 : 

아래와 같은 에러가 나왔다.

c_materialized_view; CREATE MATERIALIZED VIEW dynamic_materialized_view AS WITH date_series AS ( SELECT generate_series( ?::date, ?::date, '1 day'::interval )::date AS ### Cause: org.postgresql.util.PSQLException: 오류: materialized views may not be defined using bound parameters ; uncategorized SQLException; SQL state [0A000]; error code [0]; 오류: materialized views may not be defined using bound parameters

 

=> 즉 materialized view에서는 정의할때 #{}을 사용할 수 없다는거다. 고정된 쿼리로 정의되기 때문에. 안된다는것.

 

# 에러 코드 : 

mapper 쪽에서 

    <update id="createOrRefreshMaterializedView">
<![CDATA[
   DROP MATERIALIZED VIEW IF EXISTS dynamic_materialized_view;
   CREATE MATERIALIZED VIEW dynamic_materialized_view AS
   WITH date_series AS (
      SELECT generate_series(
         ${startDate}::date,
        ${endDate}::date,
         '1 day'::interval

 

 

구글링 하다가 스택오버플로우에서 아래와 같이 사용하면 해결 된다고 해서 사용해서 해결함.

 

# 해결 :

    <update id="createOrRefreshMaterializedView">
<![CDATA[
   DROP MATERIALIZED VIEW IF EXISTS dynamic_materialized_view;
   CREATE MATERIALIZED VIEW dynamic_materialized_view AS
   WITH date_series AS (
      SELECT generate_series(
         '${startDate}'::date,
            '${endDate}'::date,
         '1 day'::interval

 

많은 시간을 들여서 쿼리를 짰는데, 백엔드 쪽에 넣을때 헛짓 한줄 알고 큰일 날뻔 했다. 휴

 

 

profile

IT'S DO

@멋진놈

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!