我有一個家長(程序)pojo與他們的孩子(訂戶)有多對多的關係。與休眠的多對多關係的循環序列化
問題是,當它串行化程序,它也串行化方案的用戶,其中包括他們的串行化程序,其中涉及連載他們的用戶,直到它已連載數據庫中的每一個程序&用戶。
的ERD樣子:計劃< - >用戶
這意味着什麼數據(JSON)的微小17KB塊返回已成爲一個6.9MB的回報。這樣就反過來吹出了連續數據然後返回的時間。
爲什麼我的父母返回孩子返回父母回國孩子?我怎樣才能阻止這個,所以我只能得到每個程序的訂閱者?我假設我的註釋做錯了,也許?我想保持多對多的關係,但沒有深度嵌套的數據檢索。
(注:?我已經事先嚐試添加儘可能多的懶註解我能找到的只是爲了看看有沒有什麼幫助它不也許我做了錯誤的太)
Program.java
@Entity
@Table(name="programs")
public class Program extends Core implements Serializable, Cloneable {
...
@ManyToMany()
@JoinTable(name="program_subscribers",
joinColumns={@JoinColumn(name="program_uid")},
inverseJoinColumns={@JoinColumn(name="subscriber_uid")})
public Set<Subscriber> getSubscribers() { return subscribers; }
public void setSubscribers(Set<Subscriber> subscribers) { this.subscribers = subscribers; }
Subscriber.java
@Entity
@Table(name="subscribers")
public class Subscriber extends Core implements Serializable {
...
@ManyToMany(mappedBy="subscribers")
public Set<Program> getPrograms() { return programs; }
public void setPrograms(Set<Program> programs) { this.programs = programs;
}
實施
public Collection<Program> list() {
return new Programs.findAll();
}
這是一個手我下來的項目,我不是100%有什麼用JSON序列化。我看到com.sdicons.json.mapper.JSONMapper.SimpleMapperHelper引用。我們有一個方法public JSONValue toJSON(Object pojo)會拋出MapperException異常{}。 (猜它的推出自己的序列化) – 2010-02-08 22:50:11
另外,如果我註釋getPrograms()@XmlTransient這將意味着我永遠無法返回用戶程序? – 2010-02-08 22:54:43
是的。另一個是自定義您的映射器以手動處理週期。 – Bozho 2010-02-09 06:36:14