【发布时间】:2023-03-19 02:16:01
【问题描述】:
我刚刚开始使用 Netbeans 提供的 Restfull Web 服务。
我创建了两个实体。第一个是Player,第二个是VehicleDetail。两者都有ManyToMany关系:
玩家:
@ManyToMany(mappedBy = "players", fetch = FetchType.LAZY)
private List<VehicleDetail> vehicleDetails;
车辆详情
@ManyToMany(fetch = FetchType.LAZY)
private List<Player> players;
我已经创建了 JSP 页面,您可以在其中创建新的 Players 和 VehicleDetails。我为我的实体添加了 Restfull Web 服务。他们会以 JSON 形式向我提供有关实体的信息。
当我通过我的 JSP 页面添加新的 Players 和 VehicleDetails 然后我通过 GET HTTP 方法测试 Restfull 服务时,它显示了正确的 JSON。
然后我将 VehicleDetail 添加到我的 Players 列表和 Player 到 VehicleDetails 列表并更新了它们:
Player player = db.getPlayer(playerId);
VehicleDetail detail = db.getVehicleDetail(detailId);
player.getVehicleDetails().add(detail);
detail.getPlayers().add(player);
db.updateObject(player);
db.updateObject(detail);
db.updateObject(Object o) 的代码是:
@Override
public void updateObject(Object o) {
em.merge(o);
em.flush();
}
现在,当我尝试查看我的播放器时。我创建 HTTP GET 方法以将 Player 视为 JSON。它向我展示了“无限”JSON。它告诉我它得到了 VehicleDetail 得到了这个 Player 得到了这个 VehicleDetail 得到了这个 Player 等等。它给了我例外;
java.lang.NoClassDefFoundError: org/codehaus/jackson/map/JsonMappingException$Reference
问题:我需要做什么? FETCHTYPE.LAZY 不起作用。
【问题讨论】:
标签: java json jsp rest netbeans