2011-11-21 83 views
2

我正在開發具有spring mvc和Data以json格式發送給客戶端的web應用程序。 我想有相同的模型對象的一些觀點因此,我只能返回所需的數據,而不是more.Jackson庫@JsonIgnore@JsonIgnoreProperties不適合這個.Jackson庫也紛紛@JsonView@JsonFilter註釋,但他們也沒有幫助too.How可以處理這個問題。例如,我將需要UI的一些頁面中可能的目標列表,有時不需要。 This是同一個問題,但答案不幫我Spring MVC和json序列化

@Entity 
    public class Warrant implements Serializable { 

      @Column 
      String name; 

     @JsonIgnore 
     @ManyToOne 
     private User owner; 

     @Column 
     private String value; 

     @OneToMany(mappedBy = "warrant", targetEntity = com.endersys.lims.model.Target.class) 
     private List<Target> possibleTargets; 

     ..... 
    } 

回答

2

你在混合應用程序層。不要將實體從持久層發送到視圖。使用傳輸對象,這樣你可以輕鬆控制你展示世界的東西。

您可能希望使用像Dozer這樣的框架來自動化圖層之間的數據傳輸。

+0

推土機! :-)完全同意,將JSON序列化與ORM映射混合在一起。 –

+0

@Peter Perhac,我想序列化我的模型對象到JSON中,需要的字段和。我不想創建只有組屬性的Java類。我可以像這個項目http://www.devx.com/那樣做註釋Java/Article/42946/1954在編譯時生成getter setter – ayengin

+0

只有這樣我才能編寫一個@view(name = {proper1,proper3},name2 = {property4})註釋並生成java類,由名稱和字段指定並返回這個從spring控制器生成的類。這是可能的。或者我必須手動爲每個視圖創建java類。 – ayengin