我想要使用Hibernate,roo和JSON获取OneToMany关系。Spring Roo OneToMany关系不显示在JSON中
我能够加入
<field:display field="children" id="s_com_example_domain_Parent_children" object="${parent}" z="Etv5+hIcaVaq9A6jzjMOK0xoJMI="/>
到/src/main/webapp/WEB-INF/parents/show.jspx
但是看到通过JSPX页父的孩子,我看不到他们,当我执行GET(类型=应用程序/ JSON) 这里是我的代码:
Parent.java:
@RooJavaBean
@RooToString
@RooJpaActiveRecord
@RooJson
public class Parent {
private String name;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "parent")
private Set<Child> children = new HashSet<Child>();
}
Child.java
@RooJavaBean
@RooToString
@RooJpaActiveRecord
@RooJson
public class Child {
private String name;
@ManyToOne
private Parent parent;
}
小豆壳:
jpa setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY
entity jpa --class ~.domain.Parent
entity jpa --class ~.domain.Child
field set --fieldName children --type ~.domain.Child --class ~.domain.Parent --mappedBy parent --cardinality ONE_TO_MANY --notNull false
field reference --fieldName parent --type ~.domain.Parent --cardinality MANY_TO_ONE --class ~.domain.Child --notNull false
web mvc setup
web mvc all --package ~.web
web mvc json all
我还添加
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.12</version>
</dependency>
要我Maven项目。
如果我通过web(jspx)接口,我可以添加父p和子c。我可以看到孩子有父母P,和父母有孩子C,但这里是我的GET请求的输出为JSON
Request Url: http://localhost:8080/HibernateTest/children/1
Request Method: GET
{
"id": 1,
"name": "c",
"parent": {
"id": 1,
"name": "p",
"version": 0
},
"version": 0
}
Request Url: http://localhost:8080/HibernateTest/parents/1
Request Method: GET
{
"id": 1,
"name": "p",
"version": 0
}
我怎样才能让我的孩子们的家长下现身一个JSON GET请求?
这工作,谢谢! – 2013-04-24 21:12:20