[問題] Spring展開JPA物件成JSON的問題
大家好,我最近使用Spring boot做REST API遇到個問題
在使用Spring的RestController讓method直接return一個物件
Spring會自動把物件轉為JSON String送給client
但我的JPA物件因為有關連的關係
Class A會指向Class B,Class B也會只回Class A
所以物件被展開成JSON String時就沒完沒了直到Exception了..
使用套件:
spring-boot-starter-web
spring-boot-starter-data-jpa
spring-boot-devtools
我用個範例來描述我的問題
@Entity
public class Type{
@id
private String name;
@OneToMany(mappedBy="type")
private List<Content> contents;
// getter and setter
}
@Entity
public class Content{
@Id
private String name;
@ManyToOne
private Type type;
// getter and setter
}
@RestController
public class Controller{
// @Autowired something...
@GetMapping("/show-types")
public Interable<Type> showTypes(){
return typeDao.findAll();
}
}
基本上就是Type裡面紀錄的很多Content
但為了存到資料庫裡有關聯,Content也可以指回去自己屬於哪個Type
所以透過網址呼叫/show-types時
Spring展開了Type發現有Content,就展開了Content
展開Content時又發現有Type,所以又展開了Type...
一直持續下去,然後就當了XD
想請問有什麼辦法讓Spring展開到Content後就忽略裡面的type field
或是有其他方法能解決掉這個無限遞迴的問題?
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.132.178.168
※ 文章網址: https://www.ptt.cc/bbs/java/M.1484580523.A.D96.html
推
01/16 23:46, , 1F
01/16 23:46, 1F
推
01/16 23:49, , 2F
01/16 23:49, 2F
→
01/17 00:49, , 3F
01/17 00:49, 3F
→
01/21 09:10, , 4F
01/21 09:10, 4F
→
01/21 09:10, , 5F
01/21 09:10, 5F
→
01/21 09:10, , 6F
01/21 09:10, 6F
→
01/21 09:10, , 7F
01/21 09:10, 7F
→
01/21 09:10, , 8F
01/21 09:10, 8F
推
01/25 17:07, , 9F
01/25 17:07, 9F
→
01/25 17:07, , 10F
01/25 17:07, 10F
java 近期熱門文章
PTT數位生活區 即時熱門文章