You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blaze Persistence Quarkus3集成中,@Mapping("this")结合带构造函数的子视图抛出运行时异常的问题咨询

Blaze Persistence Quarkus3集成中,@Mapping("this")结合带构造函数的子视图抛出运行时异常的问题咨询

我在使用com.blazebit:blaze-persistence-integration-quarkus-3依赖时,遇到了一个棘手的运行时异常,想请教下社区的各位有没有相关的经验或者分析思路。

问题场景复现

我定义了如下的实体视图结构,其中Validation实体类本身包含startTime和endTime两个字段:

@EntityView(Validation.class)
public interface ValidationView extends IValidation {
    @Override
    @Mapping("this")
    TimePeriodForValidation getPeriod();

    @EntityView(Validation.class)
    abstract class TimePeriodForValidation extends TimePeriodView {
        public TimePeriodForValidation(
                @Mapping("startTime") LocalDateTime startTime,
                @Mapping("endTime") LocalDateTime endTime
        ) {
            super(startTime, endTime);
        }
    }
}

这里ValidationView通过@Mapping("this")返回一个子视图类型TimePeriodForValidation的period属性,而子视图TimePeriodForValidation则通过带@Mapping注解的构造函数,直接注入Validation实体的startTime和endTime字段值。

遇到的异常

运行时触发了RuntimeException,错误提示为:

"Probably we did something wrong, please contact us if you see this message."

追踪异常栈后发现,这是因为框架在尝试调用TimePeriodForValidation的构造函数时,传入了不符合预期的参数:一个名为TimePeriodForValidation_$$_javassist_entityview的动态代理类实例(看起来是基于TimePeriodForValidation生成的),以及一个Map对象,而非构造函数定义中预期的两个LocalDateTime类型参数。

已发现的线索

我注意到这个问题似乎只在构造函数类型为ProxyFactory.ConstructorKind.CREATE时才会触发,并且已经在项目的代码仓库提交了对应的Issue。

想请教下各位:为什么会出现这种构造函数参数不匹配的情况?是不是@Mapping("this")和带构造函数的子视图组合使用时,框架的代理生成逻辑出现了冲突?


备注:内容来源于stack exchange,提问作者Anton Astafiev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 09:52:59