微服务Many-to-One关联数据在Postman中未正常显示问题
问题解决:接口返回JSON中rentalType为空对象
问题原因
调试时能获取到RentalType的具体值,但返回JSON时为空对象,核心原因是RentalType实体类缺少Getter方法——Jackson序列化工具依赖Getter方法读取类的属性值,没有这些方法就无法将属性转化为JSON字段,最终输出空对象{}。
查看你的RentalType代码,仅添加了@NoArgsConstructor和@AllArgsConstructor注解,未提供属性的访问方法,导致序列化失败。
解决方案
给RentalType实体类添加Getter/Setter方法,有两种实现方式:
方式1:使用Lombok注解(推荐)
在RentalType类上添加@Getter和@Setter注解,Lombok会自动生成对应的方法:
@Entity @NoArgsConstructor @AllArgsConstructor @Getter @Setter @Table(name="rental_type",schema="bnb_pms") public class RentalType { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name="TYPE_ID") private long typeId; @Column(name="TYPE_NAME") private String typeName; }
方式2:手动编写Getter方法
如果不使用Lombok,手动为每个属性添加Getter方法:
@Entity @NoArgsConstructor @AllArgsConstructor @Table(name="rental_type",schema="bnb_pms") public class RentalType { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name="TYPE_ID") private long typeId; @Column(name="TYPE_NAME") private String typeName; public long getTypeId() { return typeId; } public String getTypeName() { return typeName; } // 可选:如果需要修改属性,添加Setter方法 public void setTypeId(long typeId) { this.typeId = typeId; } public void setTypeName(String typeName) { this.typeName = typeName; } }
验证修改
修改后重启服务,调用接口即可看到rentalType字段正常返回属性值,示例返回结果:
{ "rentalId": 453, "rentalName": "Ehsan ulhaq Darrr1659", "internalName": "Khadim Hussain Dar", "des": "ehsandar@gmail.com", "rentalType": { "typeId": 1, "typeName": "Apartment" }, "rentalSize": 2, "guestAccomodate": 4, "totalUnits": 3 }
内容的提问来源于stack exchange,提问作者Ehsan-ul-haq Dar
相关产品推荐
相关产品推荐

