Browse Source

jpa查询json解析死循环问题

wangmh 8 years ago
parent
commit
a4f6b3877b

+ 2 - 0
sso-server/build.gradle

@@ -42,6 +42,8 @@ dependencies {
     compile("org.apache.httpcomponents:httpmime:4.4")
     compile("org.apache.httpcomponents:httpcore:4.4.5")
     compile("org.apache.httpcomponents:httpclient:4.4")
+    compile("org.codehaus.jackson:jackson-core-asl:1.9.13")
+    compile("org.codehaus.jackson:jackson-mapper-asl:1.9.13")
 
     testCompile("org.springframework.boot:spring-boot-starter-test")
 }

+ 10 - 4
sso-server/src/main/java/com/uas/sso/entity/User.java

@@ -1,6 +1,9 @@
 package com.uas.sso.entity;
 
-import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.alibaba.fastjson.annotation.JSONField;
+import com.fasterxml.jackson.annotation.JsonTypeId;
+import org.codehaus.jackson.annotate.JsonIgnore;
+
 import java.io.Serializable;
 import java.sql.Timestamp;
 import java.util.HashSet;
@@ -186,7 +189,6 @@ public class User implements Serializable {
     /**
      * 用户登录记录
      */
-    @JsonIgnore
     @OneToOne(fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST})
     @JoinColumn(name = "record_id")
     private UserRecord userRecord;
@@ -194,12 +196,10 @@ public class User implements Serializable {
     /**
      * 密保问题
      */
-    @JsonIgnore
     @OneToMany(fetch = FetchType.LAZY, cascade = {CascadeType.REMOVE})
     @JoinColumn(name = "useruu", nullable = false)
     private List<UserQuestion> questions;
 
-    @JsonIgnore
     @ManyToMany(mappedBy = "users")
     private Set<Userspace> userSpaces = new HashSet<>();
 
@@ -406,6 +406,8 @@ public class User implements Serializable {
         this.lock = lock;
     }
 
+    @JsonIgnore
+    @JSONField(serialize = false)
     public UserRecord getUserRecord() {
         return userRecord;
     }
@@ -414,6 +416,8 @@ public class User implements Serializable {
         this.userRecord = userRecord;
     }
 
+    @JsonIgnore
+    @JSONField(serialize = false)
     public List<UserQuestion> getQuestions() {
         return questions;
     }
@@ -422,6 +426,8 @@ public class User implements Serializable {
         this.questions = questions;
     }
 
+    @JsonIgnore
+    @JSONField(serialize = false)
     public Set<Userspace> getUserSpaces() {
         return userSpaces;
     }

+ 3 - 2
sso-server/src/main/java/com/uas/sso/entity/Userspace.java

@@ -1,7 +1,7 @@
 package com.uas.sso.entity;
 
 import com.alibaba.fastjson.annotation.JSONField;
-import com.fasterxml.jackson.annotation.JsonIgnore;
+import org.codehaus.jackson.annotate.JsonIgnore;
 
 import javax.persistence.*;
 import java.io.Serializable;
@@ -184,7 +184,6 @@ public class Userspace implements Serializable {
     /**
      * 企业下的用户
      */
-    @JsonIgnore
     @ManyToMany
     @JoinTable(name = "sso$user_userspace",
             joinColumns = {@JoinColumn(name="space_uu", referencedColumnName="spaceuu")},
@@ -415,6 +414,8 @@ public class Userspace implements Serializable {
         this.domain = domain;
     }
 
+    @JsonIgnore
+    @JSONField(serialize = false)
     public List<User> getUsers() {
         return users;
     }