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

Quarkus REST接口仅返回ID,未返回LocalTime字段问题

问题原因

你的Slot类继承了PanacheEntity,但自定义的startTime和endTime字段为私有且未提供Getter方法,JSON序列化框架(如Jackson)无法访问这些私有字段,因此仅序列化了PanacheEntity自带的id字段。

解决方法

推荐以下两种规范的处理方式:

方法一:为字段添加Getter方法

可以手动编写Getter,也可以用Lombok注解自动生成:

手动编写Getter

@Entity
@Cacheable
@Table(
        name = "slot",
        uniqueConstraints = {@UniqueConstraint(columnNames = {"start_time", "end_time"})}
)
public class Slot extends PanacheEntity {
    @Column(name = "start_time")
    LocalTime startTime;

    @Column(name = "end_time")
    LocalTime endTime;

    public LocalTime getStartTime() {
        return startTime;
    }

    public LocalTime getEndTime() {
        return endTime;
    }
}

使用Lombok简化

若项目已引入Lombok依赖,直接给类添加@Data注解,自动生成所有字段的Getter、Setter等方法:

@Entity
@Cacheable
@Data
@Table(
        name = "slot",
        uniqueConstraints = {@UniqueConstraint(columnNames = {"start_time", "end_time"})}
)
public class Slot extends PanacheEntity {
    @Column(name = "start_time")
    LocalTime startTime;

    @Column(name = "end_time")
    LocalTime endTime;
}

方法二:配置Jackson允许访问私有字段

如果不想添加Getter,可通过@JsonAutoDetect注解让Jackson直接读取私有字段:

@Entity
@Cacheable
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)
@Table(
        name = "slot",
        uniqueConstraints = {@UniqueConstraint(columnNames = {"start_time", "end_time"})}
)
public class Slot extends PanacheEntity {
    @Column(name = "start_time")
    LocalTime startTime;

    @Column(name = "end_time")
    LocalTime endTime;
}
验证效果

修改后重启服务,调用/slots接口将返回完整数据,示例如下:

[{"id":1,"startTime":"09:00","endTime":"10:00"},{"id":2,"startTime":"10:00","endTime":"11:00"}]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 06:33:18