HashSet Rest模型麻烦Spring
HashSet Rest model trouble Spring
我有一个用户模型。它在我的 Spring 安全性中使用,我有一些 HashSet 字段,其中包含我的用户的角色。但现在我尝试设置 REST。当我得到 json 格式的用户对象时,由于这个 HashSet,我也得到了一些无限循环。
我的控制器:
@RequestMapping(value="/rest/{login}", method = RequestMethod.GET)
public String getRest(@PathVariable String login, Model model){
model.addAttribute("user",dao.findByLogin(login));
return "rest";
}
小片段:
{
"user" : {
"login" : "roman",
"password" : "aTVADrR6/SPLBjsK0N30.Jf5fNjBugSACeGv1S69dZALR7lSov0y",
"email" : "email",
"enabled" : true,
"userRole" : [ {
"roleId" : 1,
"user" : {
"login" : "roman",
"password" : "aTVADrR6/SPLBjsK0N30.Jf5fNjBugSACeGv1S69dZALR7lSov0y",
"email" : "email",
"enabled" : true,
"userRole" : [ {
"roleId" : 1,
"user" : {
"login" : "roman",
"password" : "aTVADrR6/SPLBjsK0N30.Jf5fNjBugSACeGv1S69dZALR7lSov0y",
"email" : "email",
"enabled" : true,
"userRole" : [ {
"roleId" : 1,
"user" : {
"login" : "roman",
"password" : "aTVADrR6/SPLBjsK0N30.Jf5fNjBugSACeGv1S69dZALR7lSov0y",
"email" : "email",
"enabled" : true,
"userRole" : [ {
"roleId" : 1,
"user" : {
"login" : "roman",
"password" : "aTVADrR6/SPLBjsK0N30.Jf5fNjBugSACeGv1S69dZALR7lSov0y",
"email" : "email",
"enabled" : true,
"userRole" : [ {
"roleId" : 1,
"user" : {
"login" : "roman",
"password" : "aTVADrR6/SPLBjsK0N30.Jf5fNjBugSACeGv1S69dZALR7lSov0y",
"email" : "email",
"enabled" : true,
"userRole" : [ {
"roleId" : 1,
"user" : {
"login" : "roman",
"password" : "aTVADrR6/SPLBjsK0N30.Jf5fNjBugSACeGv1S69dZALR7lSov0y",
"email" : "email",
"enabled" : true,
"userRole" : [ {
"roleId" : 1,
"user" : {
"login" : "roman",
"password" : "aTVADrR6/SPLBjsK0N30.Jf5fNjBugSACeGv1S69dZALR7lSov0y",
"email" : "email",
"enabled" : true,
"userRole" : [ {
"roleI ....
在这种情况下我能做什么?
将 UserRole
的 user
属性 注释为:
@JsonBackReference
指示 Jackson 这是一个循环引用,不应遵循。
我有一个用户模型。它在我的 Spring 安全性中使用,我有一些 HashSet 字段,其中包含我的用户的角色。但现在我尝试设置 REST。当我得到 json 格式的用户对象时,由于这个 HashSet,我也得到了一些无限循环。
我的控制器:
@RequestMapping(value="/rest/{login}", method = RequestMethod.GET)
public String getRest(@PathVariable String login, Model model){
model.addAttribute("user",dao.findByLogin(login));
return "rest";
}
小片段:
{
"user" : {
"login" : "roman",
"password" : "aTVADrR6/SPLBjsK0N30.Jf5fNjBugSACeGv1S69dZALR7lSov0y",
"email" : "email",
"enabled" : true,
"userRole" : [ {
"roleId" : 1,
"user" : {
"login" : "roman",
"password" : "aTVADrR6/SPLBjsK0N30.Jf5fNjBugSACeGv1S69dZALR7lSov0y",
"email" : "email",
"enabled" : true,
"userRole" : [ {
"roleId" : 1,
"user" : {
"login" : "roman",
"password" : "aTVADrR6/SPLBjsK0N30.Jf5fNjBugSACeGv1S69dZALR7lSov0y",
"email" : "email",
"enabled" : true,
"userRole" : [ {
"roleId" : 1,
"user" : {
"login" : "roman",
"password" : "aTVADrR6/SPLBjsK0N30.Jf5fNjBugSACeGv1S69dZALR7lSov0y",
"email" : "email",
"enabled" : true,
"userRole" : [ {
"roleId" : 1,
"user" : {
"login" : "roman",
"password" : "aTVADrR6/SPLBjsK0N30.Jf5fNjBugSACeGv1S69dZALR7lSov0y",
"email" : "email",
"enabled" : true,
"userRole" : [ {
"roleId" : 1,
"user" : {
"login" : "roman",
"password" : "aTVADrR6/SPLBjsK0N30.Jf5fNjBugSACeGv1S69dZALR7lSov0y",
"email" : "email",
"enabled" : true,
"userRole" : [ {
"roleId" : 1,
"user" : {
"login" : "roman",
"password" : "aTVADrR6/SPLBjsK0N30.Jf5fNjBugSACeGv1S69dZALR7lSov0y",
"email" : "email",
"enabled" : true,
"userRole" : [ {
"roleId" : 1,
"user" : {
"login" : "roman",
"password" : "aTVADrR6/SPLBjsK0N30.Jf5fNjBugSACeGv1S69dZALR7lSov0y",
"email" : "email",
"enabled" : true,
"userRole" : [ {
"roleI ....
在这种情况下我能做什么?
将 UserRole
的 user
属性 注释为:
@JsonBackReference
指示 Jackson 这是一个循环引用,不应遵循。