Код: Выделить всё
@Retry
@SqlQuery("""
WITH IdsGrouped AS (
SELECT /* comment */
record_key,
max(gen_datetime) as max_dt
FROM "ad".iceberg_data._
WHERE record_key IN ()
GROUP BY record_key
)
SELECT *
FROM "ad".iceberg_data._
WHERE (record_key, gen_datetime) IN (SELECT * FROM IdsGrouped)
""")
@UseStringTemplateEngine
@RegisterRowMapper(MapMapper.class)
List findDataById(@Define("sourceSchema") SourceSchema sourceSchema,
@DefineCollection(value = "ids") Collection ids);
Код: Выделить всё
org.jdbi.v3.core.statement.UnableToCreateStatementException: java.sql.SQLException: while preparing SQL:
WITH IdsGrouped AS (
SELECT /* comment */
record_key,
max(gen_datetime) as max_dt
FROM "ad".iceberg_data.bl_merged WHERE record_key IN ('69823926','70674377','101113')
GROUP BY record_key
)
SELECT *
FROM "ad".iceberg_data.bl_merged
WHERE (record_key, gen_datetime) IN (SELECT * FROM IdsGrouped)
Трассировка:
Код: Выделить всё
at com.btg.fit.nex.pln.common.persistence.decorator.RetryDecorator.lambda$decorateHandler$1(RetryDecorator.java:35)
at net.jodah.failsafe.Functions.lambda$get$0(Functions.java:48)
at net.jodah.failsafe.RetryPolicyExecutor.lambda$supply$0(RetryPolicyExecutor.java:62)
at net.jodah.failsafe.Execution.executeSync(Execution.java:129)
at net.jodah.failsafe.FailsafeExecutor.call(FailsafeExecutor.java:376)
at net.jodah.failsafe.FailsafeExecutor.get(FailsafeExecutor.java:67)
at com.btg.fit.nex.pln.common.persistence.decorator.RetryDecorator.lambda$decorateHandler$2(RetryDecorator.java:31)
at org.jdbi.v3.sqlobject.internal.SqlObjectInitData$1.lambda$invoke$0(SqlObjectInitData.java:132)
at org.jdbi.v3.core.internal.Invocations.invokeWith(Invocations.java:44)
at org.jdbi.v3.core.internal.Invocations.invokeWith(Invocations.java:26)
at org.jdbi.v3.core.LazyHandleSupplier.lambda$invokeInContext$1(LazyHandleSupplier.java:82)
at org.jdbi.v3.core.internal.Invocations.invokeWith(Invocations.java:44)
at org.jdbi.v3.core.internal.Invocations.invokeWith(Invocations.java:26)
at org.jdbi.v3.core.LazyHandleSupplier.invokeInContext(LazyHandleSupplier.java:81)
at org.jdbi.v3.sqlobject.internal.SqlObjectInitData$1.call(SqlObjectInitData.java:138)
at org.jdbi.v3.sqlobject.internal.SqlObjectInitData$1.invoke(SqlObjectInitData.java:132)
at org.jdbi.v3.sqlobject.SqlObjectFactory.lambda$attach$2(SqlObjectFactory.java:108)
at org.jdbi.v3.core.internal.OnDemandExtensions.lambda$invoke$5(OnDemandExtensions.java:98)
at org.jdbi.v3.core.internal.exceptions.Unchecked.lambda$function$4(Unchecked.java:76)
at org.jdbi.v3.core.internal.OnDemandExtensions.invoke(OnDemandExtensions.java:98)
at org.jdbi.v3.core.internal.OnDemandExtensions.lambda$createProxy$2(OnDemandExtensions.java:82)
at org.jdbi.v3.core.Jdbi.callWithExtension(Jdbi.java:491)
at org.jdbi.v3.core.Jdbi.withExtension(Jdbi.java:478)
at org.jdbi.v3.core.internal.OnDemandExtensions.lambda$createProxy$3(OnDemandExtensions.java:82)
at jdk.proxy2/jdk.proxy2.$Proxy67.findDataById(Unknown Source)
at com.btg.fit.nex.pln.logistics.precombination.Fetcher.findDataById(Fetcher.java:68)
Код: Выделить всё
@SqlMethodDecoratingAnnotation(RetryDecorator.class)
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
public @interface Retry {
int value() default 3;
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... paring-sql