Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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
Java 如何使用play'处理Set(LinkedHashSet);s Form.formhelper?_Java_Hibernate_Playframework 2.0_Jpa 2.0 - Fatal编程技术网

Java 如何使用play'处理Set(LinkedHashSet);s Form.formhelper?

Java 如何使用play'处理Set(LinkedHashSet);s Form.formhelper?,java,hibernate,playframework-2.0,jpa-2.0,Java,Hibernate,Playframework 2.0,Jpa 2.0,我有下面的场景 @Entity public class Parent { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Long id; @Column(name = "name", nullable = false) private String name; @OneToMany(fetch=FetchType.LAZY, cascade=CascadeType

我有下面的场景

@Entity
public class Parent {

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Long id;

    @Column(name = "name", nullable = false)
    private String name;

    @OneToMany(fetch=FetchType.LAZY, cascade=CascadeType.ALL, mappedBy = "parent", orphanRemoval = true)
    private Set<Child> children = new LinkedHashSet<Child>();
   }
@Entity
public class Child {

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Long id;

    private String name;

    @ManyToOne(fetch=FetchType.LAZY, optional = false)
    private Parent parent;
}
我不想将LinkedHashSet更改为ArrayList(并将接口从Set更改为List),因为我在同一实体中有另一个OneToMany关系(这将导致org.hibernate.loader.MultipleBagFetchException

我应该怎么做才能拥有BeanRapperImpl处理集? 可能吗

编辑: 我使用的JSON是:

非常感谢您的帮助。
提前谢谢

您是否也可以发布您试图使用的JSON/表单数据?你真的需要LinkedHashSet吗(只是出于好奇)?我已经更新并包含了JSON结构。。。我使用LinkedHashSet是为了避免行李。。。我不想使用IndexColumn和List来避免行李。。。我更喜欢使用集合。。。我只是想知道是否有可能解析为一个集合。。。谢谢如果您只是发送JSON(假设您有一些API端点),那么您可以只使用JSON类,而不需要任何表单。试试这个:
JsonNode JsonNode=request().body().asJson();debug(jsonNode.toString());Parent Parent=Json.fromJson(jsonNode,Parent.class)
在这种情况下,您需要至少为
父类
子类
提供setter。我遇到了类似的问题。我使用.ajax()函数发布Javascript。我必须对我的JSON数据调用JSON.stringify(数据)。
Execution exception[[InvalidPropertyException: Invalid property 'children[0]' of bean class [models.Parent]: Illegal attempt to get property 'child' threw exception; nested exception is org.springframework.beans.InvalidPropertyException: Invalid property 'children[0]' of bean class [models.Parent]: Cannot get element with index 0 from Set of size 0, accessed using property path 'children[0]']]
    at play.api.Application$class.handleError(Application.scala:296) ~[play_2.11-2.3.8.jar:2.3.8]
    at play.api.DefaultApplication.handleError(Application.scala:402) [play_2.11-2.3.8.jar:2.3.8]
    at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3$$anonfun$applyOrElse$4.apply(PlayDefaultUpstreamHandler.scala:320) [play_2.11-2.3.8.jar:2.3.8]
    at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3$$anonfun$applyOrElse$4.apply(PlayDefaultUpstreamHandler.scala:320) [play_2.11-2.3.8.jar:2.3.8]
    at scala.Option.map(Option.scala:146) [scala-library-2.11.5.jar:na]
Caused by: org.springframework.beans.InvalidPropertyException: Invalid property 'children[0]' of bean class [models.Parent]: Illegal attempt to get property 'children' threw exception; nested exception is org.springframework.beans.InvalidPropertyException: Invalid property 'children[0]' of bean class [models.Parent]: Cannot get element with index 0 from Set of size 0, accessed using property path 'children[0]'
    at org.springframework.beans.BeanWrapperImpl.getPropertyValue(BeanWrapperImpl.java:848) ~[spring-beans-4.0.3.RELEASE.jar:4.0.3.RELEASE]
    at org.springframework.beans.BeanWrapperImpl.getNestedBeanWrapper(BeanWrapperImpl.java:571) ~[spring-beans-4.0.3.RELEASE.jar:4.0.3.RELEASE]
    at org.springframework.beans.BeanWrapperImpl.getBeanWrapperForPropertyPath(BeanWrapperImpl.java:548) ~[spring-beans-4.0.3.RELEASE.jar:4.0.3.RELEASE]
    at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:912) ~[spring-beans-4.0.3.RELEASE.jar:4.0.3.RELEASE]
    at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:82) ~[spring-beans-4.0.3.RELEASE.jar:4.0.3.RELEASE]
Caused by: org.springframework.beans.InvalidPropertyException: Invalid property 'children[0]' of bean class [models.Parent]: Cannot get element with index 0 from Set of size 0, accessed using property path 'children[0]'
    at org.springframework.beans.BeanWrapperImpl.getPropertyValue(BeanWrapperImpl.java:800) ~[spring-beans-4.0.3.RELEASE.jar:4.0.3.RELEASE]
    at org.springframework.beans.BeanWrapperImpl.getNestedBeanWrapper(BeanWrapperImpl.java:571) ~[spring-beans-4.0.3.RELEASE.jar:4.0.3.RELEASE]
    at org.springframework.beans.BeanWrapperImpl.getBeanWrapperForPropertyPath(BeanWrapperImpl.java:548) ~[spring-beans-4.0.3.RELEASE.jar:4.0.3.RELEASE]
    at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:912) ~[spring-beans-4.0.3.RELEASE.jar:4.0.3.RELEASE]
    at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:82) ~[spring-beans-4.0.3.RELEASE.jar:4.0.3.RELEASE]
{
    "name": "PARENT",
    "children": [
        {
            "name": "test"
        }
    ]
}