Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
LazyInitializationException使用带Spring HATEOAS的补丁添加_Spring_Rest_Lazy Loading_Patch_Hateoas - Fatal编程技术网

LazyInitializationException使用带Spring HATEOAS的补丁添加

LazyInitializationException使用带Spring HATEOAS的补丁添加,spring,rest,lazy-loading,patch,hateoas,Spring,Rest,Lazy Loading,Patch,Hateoas,我有一个实体ElementType,它有一组设备代码: @Entity @Table(name = "ELEMENT_TYPES") public class ElementType extends AbstractEntity<Long> { @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL) @JoinColumn(name= "ELEM_TYPE_ID") private Set<Equipme

我有一个实体ElementType,它有一组设备代码:

@Entity 
@Table(name = "ELEMENT_TYPES")
public class ElementType extends AbstractEntity<Long> {

@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name= "ELEM_TYPE_ID")
private Set<EquipmentCode> equipmentCodes;

}
但是,如果我尝试在现有设备代码中添加新设备代码,它似乎工作正常:

 [
    {
     "op": "add",
     "path": "/equipmentCodes",
     "value": [
       "https://localhost:8080/api/equipmentCodes/40529099"
    ]
    }
]
我明白了

org.hibernate.LazyInitializationException:延迟初始化失败 集合,无法初始化代理-没有会话,位于 org.springframework.data.rest.webmvc.json.patch.JsonLateObjectEvaluator.evaluate(JsonLateObjectEvaluator.java:45)

有关于问题所在的提示吗?我使用“add”的方式是否有问题,或者是与Spring配置有关

编辑:这可能是一个错误,像这样我没有得到例外:

 [
    {
     "op": "add",
     "path": "/equipmentCodes",
     "value": "https://localhost:8080/api/equipmentCodes/40529099"
    }
]
然而奇怪的是,它不是将id为40529099的现有设备代码添加到ElementType,而是插入一个新的空设备代码(当然我要将补丁发送到),删除集合中的其他设备代码,然后将新设备代码添加到ElementType

为了澄清这一点,我想将DB中已经存在的一个设备代码添加到ElementType中的集合中,而不删除该集合中的当前设备代码

 [
    {
     "op": "add",
     "path": "/equipmentCodes",
     "value": [
       "https://localhost:8080/api/equipmentCodes/40529099"
    ]
    }
]
 [
    {
     "op": "add",
     "path": "/equipmentCodes",
     "value": "https://localhost:8080/api/equipmentCodes/40529099"
    }
]