Java 如何修复它:“引用;无法初始化代理-无会话“;

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));

我正在制作API以
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;
    });
}