我在用户和组之间存在多对多的双向关系。
@Entity
@Table(name = "UserTBL")
public class User {
@Id
@SequenceGenerator(name = "user_generator", sequenceName = "user_seq", allocationSize = 1, initialValue = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "user_generator")
private Long id;
private String username;
private String password;
@ManyToMany
private List<Group> groups;
}
@Entity
@Table(name = "GroupTBL")
public class Group {
@Id
@SequenceGenerator(name = "Group_generator", sequenceName = "group_seq", allocationSize = 1, initialValue = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "Group_generator")
private Long id;
private String name;
private String description;
@ManyToMany(mappedBy = "groups")
private List<User> users;
}
我正在使用Java jax-rs Web服务开发angular js applicaton,并且正在使用jackson处理json绑定,但出现此异常:
无法从JSON字符串实例化类型[简单类型,类com.blog.models.Group]的值;没有单字符串构造函数/工厂方法(通过引用链:com.blog.models.User [“ groups”])
这是我发送到服务器的json对象:
{
"groups":[
"{\"id\":1,\"name\":\"admin\",\"description\":null,\"users\":[]}",
"{\"id\":2,\"name\":\"user\",\"description\":null,\"users\":[]}"
],
"username":"hussien",
"password":"ammar"
}
资源:
@Stateless
@Path("/users")
public class UserResource {
@EJB
private UserFacade userFacade;
@POST
@Consumes(MediaType.APPLICATION_JSON)
public void createUser(User user) {
userFacade.create(user);
}
}
在客户端看来,您可能两次对JSON对象(组)进行了一次字符串化。您应该只调用一次。JSON应该是这样的:
{"groups":[
{"id":1,"name":"admin","description":null,"users":[]},
{"id":2,"name":"user","description":null,"users":[]}
],
"username":"hussien",
"password":"ammar"
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句