Java 如何修复它:“引用;无法初始化代理-无会话“;
我正在制作API以Java 如何修复它:“引用;无法初始化代理-无会话“;,java,jpa,playframework,Java,Jpa,Playframework,我正在制作API以JSON public CompletionStage<Result> update(Long id) { return CompletableFuture.supplyAsync(() -> { Building building = service.updateBuilding(id, request().body().asJson()); return ok(Json.toJson(building));
JSON
public CompletionStage<Result> update(Long id) {
return CompletableFuture.supplyAsync(() -> {
Building building = service.updateBuilding(id, request().body().asJson());
return ok(Json.toJson(building));
}, ec.current()).exceptionally(throwable -> {
throwable.printStackTrace();
return badRequest();
});
}
你的哪行代码会抛出这个?当对象不再由JPA“管理”时。。。Controllerso的Update函数中的“return ok(Json.toJson(building))”如果建筑对象不再由EntityManager管理,那么您需要确保在关闭EntityManager之前加载了所有需要的字段。您的代码的哪一行抛出了这个问题?当对象不再由JPA“管理”时。。。Controllerso的更新函数中的“return ok(Json.toJson(building))”如果建筑物对象不再由EntityManager管理,则需要确保在关闭EntityManager之前加载所有需要的字段
public CompletionStage<Result> create() {
return CompletableFuture.supplyAsync(() -> {
Building building = service.createBuilding(request().body().asJson());
return ok(Json.toJson(building));
}, ec.current()).exceptionally(throwable -> {
throwable.printStackTrace();
return badRequest();
});
}
@Entity
@Table(name = "Buildings")
public class Building {
@Id
@SequenceGenerator(name = "device_sequence", sequenceName = "sq_deviaes")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "device_sequence")
@Column(name = "building_device_id")
private Long id;
@Column (name = "building_id", unique = true)
private Integer buildingId;
@Column(name = "name")
private String name;
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "building_device_id")
private List<Floor> Floors;
@NotNull
@Column (name = "updated_at", nullable = false)
private LocalDateTime updatedAt;
public CompletionStage<Result> create() {
return CompletableFuture.supplyAsync(() -> {
Building building = service.createBuilding(request().body().asJson());
return ok(Json.toJson(building));
}, ec.current()).exceptionally(throwable -> {
throwable.printStackTrace();
return badRequest();
});
}
public CompletionStage<Result> update(Long id) {
return CompletableFuture.supplyAsync(() -> {
Building building = service.updateBuilding(id, request().body().asJson());
return ok(Json.toJson(building));
}, ec.current()).exceptionally(throwable -> {
throwable.printStackTrace();
return badRequest();
});
}
public Building createBuilding(JsonNode jsonNode) {
return LukeJPA.withSharedTransaction(() -> {
return buildingDAO.create(jsonNode).get();
});
}
public Building updateBuilding(Long id, JsonNode jsonNode) {
return LukeJPA.withSharedTransaction(() -> {
Building building = null;
try {
building = buildingDAO.update(id, jsonNode);
} catch (Exception e) {
e.printStackTrace();
}
return building;
});
}