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

SpringBoot接口返回Event实体courseid字段为0但数据库值正确问题排查

问题原因

检查EventVM类的构造方法即可定位问题:你在Event实体转EventVM对象的构造逻辑中,完全没有对courseid字段执行赋值操作。
因为EventVM中courseid被定义为long基本数据类型,Java会给未手动赋值的基本类型数值成员变量默认赋值为0,这就是接口返回0的根本原因。
你新增的直接返回Event实体的接口没有经过EventVM转换,所以可以正常读取数据库中的真实值,和外键关联逻辑无关。

修复方案

只需要在EventVM的构造方法中补充courseid的赋值逻辑即可,修改后的构造方法代码如下:

public EventVM(Event event) {
    this.setId(event.getEventid());
    this.setEventname(event.getEventname());
    this.setCourseid(event.getCourseid()); // 新增该行赋值逻辑
    this.setEventtype(event.getEventtype());
    this.setDate(event.getDate());
    this.setCost(event.getCost());
    this.setInfo(event.getInfo());
    this.setQualifier(event.getQualifier());
    this.setMaxentrants(event.getMaxentrants());
    this.setWinner(event.getWinner());
}

如果业务场景允许courseid为空,也可以把EventVM中courseid的字段类型从基本类型long改为包装类型Long,避免未赋值时默认返回0的问题。

内容的提问来源于stack exchange,提问作者James Smith

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 09:54:03