关于spirngMVC实体多对一转换json的解决方案

来源:互联网 发布:哇嘎超级节点连接网络 编辑:程序博客网 时间:2024/06/05 06:37
@Entity  @DynamicInsert@DynamicUpdate@Table(name = "nav")   public class Nav implements Serializable {       private static final long serialVersionUID = 1L;       @Id      @Basic(optional = false)       @GeneratedValue(strategy = GenerationType.IDENTITY)       @Column(name = "id", nullable = false)       private Integer id;       @Column(name = "name")       private String lbmc;//类别名称       @Column(name = "namepy")       private String lbmcPy;//类别名称       @Column(name = "sl")       private int sl;//数量    @Column(name = "flag")       private int flag;//标识判断是否有子list        @Column(name = "order_id")       private int order_id;//级别排序    @Column(name = "level")       private int level;//级别                   @ManyToOne(cascade={CascadeType.ALL},fetch=FetchType.LAZY)  //多对一的关联FetchType.LAZY(懒加载)a) 只有真正获取数据时才发出SQL语句    /**(定义列名) @JoinColumn与@Column相区别的是:@JoinColumn注释的是保存表与表之间关系的字段,它要标注在实体属性上。而 @Column标注的是表中不包含表关系的字段。*/    @JoinColumn(name="parent_id")//这是自关联的pid列名设置    @JsonIgnore  //多对一,@JoinColumn与@column类似,指定映射的数据库字段     private Nav parent;//父id    @OneToMany(targetEntity = Nav.class,cascade={CascadeType.ALL}, mappedBy="parent",fetch = FetchType.LAZY)//一对多,mappedBy="parent"表示由parent主导(即在parent端有值)    @OrderBy("order_id") @JsonIgnore    private List<Nav> childrens=new ArrayList<Nav>();}  



因为再把实体转换成json时,是无法把实体和集合也转换为实体 所以可以采用@JsonIgnore这个标签来解决

这个标签的作用是:@JsonIgnore  过滤不需要转成json的属性


使用这个标签需要下载:jackson-databind.jar

                                         jackson-annotations.jar

                                         jackson-core.jar



0 0
原创粉丝点击