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

@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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值