2011-11-21 53 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